Maison >base de données >tutoriel mysql >Comment fusionner des tables MySQL avec des structures identiques et gérer les conflits de clés primaires ?

Comment fusionner des tables MySQL avec des structures identiques et gérer les conflits de clés primaires ?

DDD
DDDoriginal
2025-01-13 10:31:42759parcourir

How to Merge MySQL Tables with Identical Structures and Handle Primary Key Conflicts?

Fusion de tables MySQL : le guide complet

Fusionner deux tables MySQL avec la même structure, ce qui pose des défis uniques en raison d'éventuels conflits de clés primaires. Il existe cependant des moyens efficaces pour accomplir cette tâche.

Méthode 1 : INSÉRER IGNORER

Pour conserver les lignes existantes dans la table_1 et insérer uniquement de nouvelles lignes dans la table_2, vous pouvez utiliser la requête suivante :

<code class="language-sql">INSERT IGNORE
  INTO table_1
SELECT *
  FROM table_2;</code>

Méthode 2 : REMPLACER

Alternativement, si vous souhaitez remplacer les lignes existantes de la table_1 par les lignes correspondantes de la table_2 lors de l'insertion de nouvelles lignes, vous pouvez utiliser la requête suivante :

<code class="language-sql">REPLACE
   INTO table_1
 SELECT *
   FROM table_2;</code>

Remarques sur les conflits de clés primaires

Les méthodes INSERT IGNORE et REPLACE gèrent différemment les conflits de clés primaires. INSERT IGNORE insère une nouvelle ligne sans valeurs de clé primaire conflictuelles. REPLACE met à jour les lignes existantes quels que soient les conflits de clé primaire.

Exemple

Considérons deux tables, table_1 et table_2, qui contiennent les données suivantes :

table_1
id name
1 John
2 Mary
table_2
id name
1 Mike
2 Sarah
3 Peter

Utilisez INSERT IGNORE pour interroger, les résultats sont les suivants :

table_1
id name
1 John
2 Mary
3 Peter

Les lignes de la table_2 avec des clés primaires correspondantes seront ignorées et seules les lignes avec des clés primaires inexistantes seront insérées.

Utilisez la requête REPLACE, les résultats sont les suivants :

table_1
id name
1 Mike
2 Sarah
3 Peter

Les lignes de la table_1 avec les clés primaires correspondantes seront remplacées par les lignes correspondantes de la table_2.

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