Récupérer l'id autoincrement mysql

Signaler
Messages postés
16
Date d'inscription
dimanche 12 janvier 2003
Statut
Membre
Dernière intervention
23 novembre 2004
-
Messages postés
2
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
9 août 2012
-
Bonjour,

J'aimerai pouvoir récupérer l'id de l'enregistrement que j'insére dans la base mysql (l'id étant de type autoincrement).

(En perl par exemple un simple dbh->{mysql_insertid} me retourne le dernier id inséré, mai en VB...C une autre histoire !)

Voici la ligne que j'utilise pour insérer mon enregistrement:

rs.Open "INSERT INTO facture (numero_facture,type_facture,id_client,client,date_creation,date_echeance,contenu,port,acompte,commentaires) " _
& "VALUES ('" & numero_facture & "','Devis','" & id_client & "','" & ligne_client & "','" & date_creation & "','" & date_creation & "','" & ligne_contenu & "','" & port.Text & "','" & acompte.Text & "','" & comments & "')", Form1.connMysql, adOpenStatic, adLockPessimistic

Merci pour vos réponseS :)

2 réponses

Messages postés
16
Date d'inscription
dimanche 12 janvier 2003
Statut
Membre
Dernière intervention
23 novembre 2004

Bon ben j'ai trouvé...Pour ceux qui ne le savaient pas:

rs.Open "SELECT LAST_INSERT_ID() as newid", Form1.connMysql, adOpenStatic, adLockPessimistic
Do While Not rs.EOF
newid$ = rs!newid
MsgBox newid
rs.MoveNext
Loop

On utilise la fonction interne de mysql LAST_INSERT_ID et on la récupére dans un simple select...;)
Messages postés
2
Date d'inscription
mercredi 25 juillet 2012
Statut
Membre
Dernière intervention
9 août 2012

Pas terrible ... Beaucoup de tables peuvent avoir un auto incrément et on ne précise même pas laquelle. Dans un environnement très sollicité (beaucoup de postes) rien ne garanti, même en faisant ce select juste après l'insert, que l'on récupérera celui qu'on veut et pas un ultime dernier qui aura été traité entre l'insert et le select.