requete imbriqué [SQL][Resolu] - SQL/NoSQL - Programmation
Marsh Posté le 21-03-2011 à 18:40:26
| alcapone59 a écrit : Bonjour,   | 
 
 
 
Si ton SGBD autorise les transactions (ex :http://www.commentcamarche.net/for [...] ctions-sql) 
 
alors un insert suivi d'un select max(ID) ... à l'intérieur d'une transaction et ça devrait le faire 
 
 
 
Marsh Posté le 22-03-2011 à 08:16:16
Si c'est du SQL Server tu peux utiliser la clause OUTPUT qui fera pil ce que tu veux.
Marsh Posté le 22-03-2011 à 08:27:26
Bonjour et merci pour vos réponses. 
 
J'utilise WAMP5 avec PHPmyAdmin. 
 
Je vais regarder vos pistes.  
 
Cordialement,
Marsh Posté le 22-03-2011 à 08:34:31
ReplyMarsh Posté le 22-03-2011 à 09:21:25
| antac a écrit : si tu utilises PHP, tu peux trouver le dernier id insérer avec MYSQL_LAST_ID | 
 
 
 
Non j'utilise Visual Basic 6  domage car j'avais trouvé mysql_insert_id(INSERT ...) qui aurait peu fonctionné
 domage car j'avais trouvé mysql_insert_id(INSERT ...) qui aurait peu fonctionné   
 
Marsh Posté le 22-03-2011 à 09:59:03
Bon au final je vais procéder par deux requête, j'aurais bien aimé optimisé si possible  
  
 
L'insert puis la requete suivante : 
SELECT id FROM ma_table ORDER BY id DESC LIMIT 1
Marsh Posté le 22-03-2011 à 10:01:36
ça c'est pas une bonne idée, si tu as eu d'autres insertions en parallèle, le résultat peut etre faussé  
 
tu fais ton insertion , puis tu lances la requete SELECT  LAST_INSERT_ID() qui va te retourner le dernier enregistrement inséré pour ta connection ( et pas pour les eventuels autres clients) 
Marsh Posté le 22-03-2011 à 10:26:37
Bon je viens de tester et ca fonctionne parfaitement. 
 
Par contre je ne vois pas comment je peux récupérer la valeur en VB6 
Marsh Posté le 22-03-2011 à 14:20:51
SELECT LAST_INSERT_ID() as NewID 
 
En VB, tu récupères le champ "NewID"...
Marsh Posté le 22-03-2011 à 14:52:54
Humm étrange, j'ai déjà testé mais ca ne marche pas, ca me m'était que le NewID était inconnu. 
 
Je ferais d'autre test demain. 
 
Encore merci
Marsh Posté le 22-03-2011 à 15:07:56
Bon ca fonctionne, j'avais du faire une erreur au paravent  
 
 
Un grand merci à vous tous.
Marsh Posté le 21-03-2011 à 16:26:12
Bonjour,
 
 
Je souhaiterais récupérer l'Id lors de la création d'une nouvelle ligne dans une table par requête imbriqué.
Exemple:
Je possède une table image ayant comme champs ID int, text1 Text, text2 Text
Lors de mon INSERT INTO image (ID, text1, text2) VALUES ('','valeur1','valeur2');
Il auto incrémente le champ ID.
J'aimerais récupérer cette ID par une requête Imbriqué, savez vous comment faire svp?
J'ai essayé :
Select ID AS INSERT INTO image (ID, text1, text2) VALUES ('','valeur1','valeur2');
Mais bien sur ca ne fonctionne pas
Merci
Message édité par alcapone59 le 22-03-2011 à 15:08:17