MySQL Ajouter une table à une autre table
Résolu
Bonjour tout le monde... après recherches infructuseuses, je viens demander aide...
Je cherche à copier une sélection d'une table MySQL dans une autre table qui n'est pas vide avec du code PHP.
$query = "INSERT INTO table_dest SELECT * FROM table_src WHERE genre LIKE 'exemple'";
Avec cet ligne de code j'arrive à copier la sélection des enregistrement LIKE 'exemple' de la table_src vers la table_dest mais seulement si la table_dest est vide.
Lorsque la table_dest a déjà des enregistrements, cela créé une l'erreur suivante...
Duplicate entry '5' for key 1
Il n'y a aucune relation entre ces deux tables
Elles ont exactement la même structure (12 champs dont le premier est un index avec auto_incrément)
Bien sur dans les 2 tables il y a des enregistrement qui ont la même valeur d'index
Quelqu'un aurait une solution?
Je cherche à copier une sélection d'une table MySQL dans une autre table qui n'est pas vide avec du code PHP.
$query = "INSERT INTO table_dest SELECT * FROM table_src WHERE genre LIKE 'exemple'";
Avec cet ligne de code j'arrive à copier la sélection des enregistrement LIKE 'exemple' de la table_src vers la table_dest mais seulement si la table_dest est vide.
Lorsque la table_dest a déjà des enregistrements, cela créé une l'erreur suivante...
Duplicate entry '5' for key 1
Il n'y a aucune relation entre ces deux tables
Elles ont exactement la même structure (12 champs dont le premier est un index avec auto_incrément)
Bien sur dans les 2 tables il y a des enregistrement qui ont la même valeur d'index
Quelqu'un aurait une solution?
A voir également:
- MySQL Ajouter une table à une autre table
- Table ascii - Guide
- Table des matières word - Guide
- Table des caractères - Guide
- Tableau croisé dynamique ou table de pilote - Guide
- Ajouter une signature sur word - Guide
2 réponses
Salut, ta colonne auto_increment doit être en clé primaire, et tu dois chercher à insérer une valeur identique donc il te jette.
tu as tout a fait raison... tu m'as mis sur la bonne piste.
$query = "INSERT INTO table_dest SELECT * FROM table_src WHERE genre LIKE 'exemple'";
donnait une erreur Duplicate entry '5' for key 1
je sélectionnait tous les champs dans la table source et essayait de les mettre dans tous les champs de la table de destination.
j'ai donc résolu mon problème...
$query = "INSERT INTO table_dest('champs2','champs3','champs4','etc..') SELECT champs2,champs3,champs4,etc.. FROM table_src WHERE genre LIKE 'exemple'";
comme ça le champs1 qui est l'index avec l'auto-incrément et la clé primaire n'entre pas dans l'opération.
avec cette requête, les enregistrement sélectionné dans la table_src sont mis à la suite des enregistrements de la table_dest avec une nouvelle valeur auto_incréement.
merci pour ton aide
$query = "INSERT INTO table_dest SELECT * FROM table_src WHERE genre LIKE 'exemple'";
donnait une erreur Duplicate entry '5' for key 1
je sélectionnait tous les champs dans la table source et essayait de les mettre dans tous les champs de la table de destination.
j'ai donc résolu mon problème...
$query = "INSERT INTO table_dest('champs2','champs3','champs4','etc..') SELECT champs2,champs3,champs4,etc.. FROM table_src WHERE genre LIKE 'exemple'";
comme ça le champs1 qui est l'index avec l'auto-incrément et la clé primaire n'entre pas dans l'opération.
avec cette requête, les enregistrement sélectionné dans la table_src sont mis à la suite des enregistrements de la table_dest avec une nouvelle valeur auto_incréement.
merci pour ton aide