Insertion multi table avec auto-increment [MySQL] - SQL/NoSQL - Programmation
Marsh Posté le 04-07-2007 à 10:19:10
weed a écrit : Y a t-il moyen de faire cela en 1 seul requete ? |
Pas à ma connaissance.
weed a écrit : Mais n'y a t-il pas moyen de le faire en 1 seule car j'ai beaucoup de donnée à importé dans une base sur 2 tables et j'aimerais bien le faire en OneShot et eviter de le faire via un script php pour gagner du temps. |
Heureusement qu'il n'y a pas que PHP qui sait récupérer le dernier ID inséré !
INSERT INTO table2 (prenom) VALUES('toto); |
http://dev.mysql.com/doc/refman/5. [...] ue-id.html
Marsh Posté le 04-07-2007 à 10:02:04
Bonjour,
j'ai 2 tables :
table1 (id1, id2, nom);
table2 (id2, prenom);
Les champs en gras sont les clefs primaires en auto increment.
Il faut donc dans un premier temps inserer les données dans la table2, récuperer la clef primaire id2 généré et enfin inserer dans la table1.
Y a t-il moyen de faire cela en 1 seul requete ?
insert table1 set id2=(insert table2 set prenom='toto'), nom='titi'
En php, on pourrait le faire en recuperer l'id2 avec le mysql_insert_id lorsque l'on fait en 2 requete ...
Mais n'y a t-il pas moyen de le faire en 1 seule car j'ai beaucoup de donnée à importé dans une base sur 2 tables et j'aimerais bien le faire en OneShot et eviter de le faire via un script php pour gagner du temps.
Dans ce cas précis, la relation entre table1 et table2 sera (1,1) bien sur.
Message édité par weed le 04-07-2007 à 10:02:49