Maison >base de données >tutoriel mysql >Comment conserver efficacement toutes les colonnes lors de l'utilisation de INSERT INTO...SELECT de MySQL ?

Comment conserver efficacement toutes les colonnes lors de l'utilisation de INSERT INTO...SELECT de MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-04 13:10:10476parcourir

How to Efficiently Preserve All Columns When Using MySQL's INSERT INTO...SELECT?

Préserver les données des colonnes avec INSERT INTO...SELECT efficace

Lors du transfert de données d'une table MySQL à une autre tout en conservant toutes les colonnes, un un défi commun se pose. En utilisant le format INSERT INTO this_table_archive (*) VALUES (SELECT * FROM this_table WHERE Entry_date < '2011-01-01 00:00:00'); peut ne pas donner le résultat souhaité.

La syntaxe correcte, telle que décrite dans le manuel MySQL, est la suivante :

INSERT INTO this_table_archive (col1, col2, ..., coln) 
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00'; 

Ce format révisé nomme explicitement chaque colonne de la table cible, garantissant que toutes les données sont copiées de manière appropriée.

De plus, si la colonne id est configurée en incrémentation automatique et que les deux tables contiennent des données, il peut être avantageux de l'exclure de la liste des colonnes. Cela évite les conflits potentiels résultant de l’insertion d’ID en double. Cependant, si la table cible est vide, cette omission n'est pas nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn