Fusionner 2 tables SQL

Résolu
Joub -  
 walhalabas -
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.
Configuration: Windows XP
Firefox 3.5.7

3 réponses

  1. zcrew Messages postés 251 Statut Membre 25
     
    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
  2. kadden Messages postés 311 Statut Membre 9
     
    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
  3. walhalabas
     
    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