Maison > base de données > tutoriel mysql > Comment insérer correctement toutes les colonnes d'une table à une autre dans MySQL à l'aide de INSERT INTO...SELECT ?

Comment insérer correctement toutes les colonnes d'une table à une autre dans MySQL à l'aide de INSERT INTO...SELECT ?

DDD
Libérer: 2024-12-07 19:57:13
original
492 Les gens l'ont consulté

How to Correctly Insert All Columns from One Table to Another in MySQL Using INSERT INTO...SELECT?

Insérer toutes les colonnes dans la table cible à l'aide de INSERT INTO...SELECT

Vous rencontrez des difficultés pour copier les données de this_table vers this_table_archive à l'aide d'un Instruction INSERT INTO avec sélection de caractère générique (*). Résolvons le problème et trouvons une solution efficace.

L'erreur réside dans l'utilisation de (*) pour sélectionner toutes les colonnes sans spécifier les noms des colonnes. La syntaxe correcte, telle que détaillée dans le manuel MySQL, nécessite que vous listiez explicitement les noms de colonnes.

Voici le code correct :

INSERT INTO this_table_archive (col1, col2, ..., coln)
SELECT col1, col2, ..., coln
FROM this_table
WHERE entry_date < '2011-01-01 00:00:00';
Copier après la connexion

Remplacez col1, col2, ..., coln avec les noms de colonnes réels de votre table.

En ce qui concerne la colonne id, si les deux tables ont un identifiant à incrémentation automatique et que des données existent déjà dans l'une ou l'autre table, vous pouvez envisager en omettant l'identifiant de la liste des colonnes de votre requête pour éviter d'éventuels conflits de clés en double.

Pour une table cible vide, cette omission ne posera aucun problème. Cependant, pour les tables contenant des données, l'exclusion de la colonne id garantira la génération de nouveaux identifiants uniques pour les lignes copiées.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal