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 ?
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!