Fusionner 2 tables SQL

Résolu/Fermé
Joub - 28 janv. 2010 à 03:21
 walhalabas - 2 déc. 2010 à 00:59
Bonjour,


Je cherche à fusionner 2 tables SQL afin de réunir les données qu'elles contiennent. J'ai donc utilisé une commande du type:

INSERT INTO Table1
select * from Table2

Mais le problème c'est que certaines entrées sont identiques dans les tables donc j'ai ce message d'erreur:

#1062 - Duplicate entry '118473' for key 1

Pourriez-vous m'aider?

Merci d'avance.
A voir également:

3 réponses

zcrew Messages postés 231 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 26 février 2010 25
28 janv. 2010 à 10:30
Tu peux créer un nouveau champ "id2" clé primaire, unique, auto-incrémenté dans table1 et faire comme requête

INSERT INTO table1 (champ1, champ2...) SELECT champ1, champ2, ... FROM table2

Ca va remettre une nouvelle clé à tous tes enregistrements mais de toute façon tu n'as pas d'autre choix que de détruire les clés d'au moins une des 2 tables.
0
kadden Messages postés 252 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 3 décembre 2021 9
1 déc. 2010 à 22:00
Ta solution est bien,

Je me dis aussi que au lieu d'ajouter un autre champ, et pas n'importe lequel un identifiant et clé, je me dis qu'il peut faire une procèdure SQL :

Si clé1 = clé2
inserer dans table 1 : clé1, + tous les champs de la table 2 sauf clé2
Else insertion de tous les champs de la Table 2

voilà
0
bah ou supprimer les deux tables et n'en garder qu'une troisième qui est la fusion des 2. L'avantage c'est qu'on est pas obliger de supprimer les anciennes tables de suite(histoire de pouvoir exporter/garder, pratique en cas d'erreur lors de la copie on recommences c'est tout et on as pas une table pourrie) les données, et plus de problème d'unicité des données.
0