[MySQL] Insertion multi table avec auto-increment

Insertion multi table avec auto-increment [MySQL] - SQL/NoSQL - Programmation

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 ?  
 

Citation :

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 cité 1 fois
Message édité par weed le 04-07-2007 à 10:02:49
Reply

Marsh Posté le 04-07-2007 à 10:02:04   

Reply

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);
INSERT INTO table1 (id2,nom) VALUES(LAST_INSERT_ID(),'titi');


 
http://dev.mysql.com/doc/refman/5. [...] ue-id.html


---------------
When it's from Finland it's good.  - Mon blog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed