Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2160 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL][Resolu] requete imbriqué

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL][Resolu] requete imbriqué

n°2065113
alcapone59
Posté le 21-03-2011 à 16:26:12  profilanswer
 

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 cité 1 fois
Message édité par alcapone59 le 22-03-2011 à 15:08:17
mood
Publicité
Posté le 21-03-2011 à 16:26:12  profilanswer
 

n°2065115
flo850
moi je
Posté le 21-03-2011 à 16:34:22  profilanswer
 

li faut le faire en deux fois


---------------

n°2065143
vttman2
Je suis Open ...
Posté le 21-03-2011 à 18:40:26  profilanswer
 

alcapone59 a écrit :

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


 
 
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
 
 
 


---------------
il n'y a pas que le VTT dans la vie, il y a le Snowboard aussi ...
n°2065217
Oliiii
Posté le 22-03-2011 à 08:16:16  profilanswer
 

Si c'est du SQL Server tu peux utiliser la clause OUTPUT qui fera pil ce que tu veux.

n°2065218
alcapone59
Posté le 22-03-2011 à 08:27:26  profilanswer
 

Bonjour et merci pour vos réponses.
 
J'utilise WAMP5 avec PHPmyAdmin.
 
Je vais regarder vos pistes.  
 
Cordialement,

n°2065219
antac
..
Posté le 22-03-2011 à 08:34:31  profilanswer
 

si tu utilises PHP, tu peux trouver le dernier id insérer avec MYSQL_LAST_ID

n°2065224
alcapone59
Posté le 22-03-2011 à 09:21:25  profilanswer
 

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é  :pt1cable:

n°2065232
alcapone59
Posté le 22-03-2011 à 09:59:03  profilanswer
 

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

n°2065234
flo850
moi je
Posté le 22-03-2011 à 10:01:36  profilanswer
 

ç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)


---------------

n°2065246
alcapone59
Posté le 22-03-2011 à 10:26:37  profilanswer
 

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 :(


Message édité par alcapone59 le 22-03-2011 à 11:36:12
mood
Publicité
Posté le 22-03-2011 à 10:26:37  profilanswer
 

n°2065302
rufo
Pas me confondre avec Lycos!
Posté le 22-03-2011 à 14:20:51  profilanswer
 

SELECT LAST_INSERT_ID() as NewID
 
En VB, tu récupères le champ "NewID"...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2065311
alcapone59
Posté le 22-03-2011 à 14:52:54  profilanswer
 

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

n°2065314
alcapone59
Posté le 22-03-2011 à 15:07:56  profilanswer
 

Bon ca fonctionne, j'avais du faire une erreur au paravent :)
 
Un grand merci à vous tous.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL][Resolu] requete imbriqué

 

Sujets relatifs
[php] Envoyer resultat requete plusieurs ligne par mailGalère requete MySQL
[resolu] problème d'injection SQL, doctrine orm[RESOLU]Requete SQL d'indicatifs chaud patate
[PL/SQL] Optimisation d'un algoRequête Access : plus gros montants et "Autres"
SHRINKFILE sur SQL 2008 ?Transformer une formule text en un chiffre dans une requete SQL
petite aide SQL requete imbriqué 
Plus de sujets relatifs à : [SQL][Resolu] requete imbriqué


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR