récupérer un ID auto-incrémenté après son insert

récupérer un ID auto-incrémenté après son insert - SQL/NoSQL - Programmation

Marsh Posté le 11-07-2008 à 00:44:15    

Bonjour,
 
Je ne suis pas du tout familier avec les manipulations en SQL et je me trouve tout bête devant un problème qui je pense est en fait très simple :d
 
j'ai une table structurée de manière suivante :
- ID (entier auto-incrémenté, clef primaire)
- NAME (varchar)
 
Je réalise une insertion :

INSERT INTO `example` ( `id` , `name` ) VALUES ( NULL , 'toto' );


 
je passe ici la valeur NULL pour l'id, c'est le sgbd qui se charge de mettre la bonne valeur (auto-incrémentée)
 
une fois l'insertion effectuée, j'aimerai récupérer cette dernière valeur, mais comment faire ? puisqu'à priori je ne connais pas l'id, et que le NAME n'est possiblement pas unique dans la table...
 
Merci d'avance  :hello:


---------------
- mon feed-back
Reply

Marsh Posté le 11-07-2008 à 00:44:15   

Reply

Marsh Posté le 11-07-2008 à 16:16:04    

sgbd ?

Reply

Marsh Posté le 11-07-2008 à 19:37:43    

j'utilise mysql là


---------------
- mon feed-back
Reply

Marsh Posté le 11-07-2008 à 21:59:19    

http://search.mysql.com/search?q=l [...] lr=lang_en
 
(j'ai même pas consulté les réponses, le titre de la seconde semble contenir la fonction à lancer)


Message édité par MagicBuzz le 11-07-2008 à 22:00:28
Reply

Marsh Posté le 13-07-2008 à 20:45:40    

et insérer un ID à null alors qu'il est autoincrémenté par Mysql n'est pas vraiment nécessaire  
 
 

Code :
  1. INSERT INTO `example` ( `name` ) VALUES ( 'toto' );


Reply

Marsh Posté le 14-07-2008 à 17:50:20    

bricocoman a écrit :

et insérer un ID à null alors qu'il est autoincrémenté par Mysql n'est pas vraiment nécessaire  
 
 

Code :
  1. INSERT INTO `example` ( `name` ) VALUES ( 'toto' );




 
 [:rastaman40]  
 
Tu ne dois mettre un NULL que si tu ne spécifies pas les champs dans lesquels tu insères les données (NON RECOMMANDÉ, au fait) :
 

Code :
  1. INSERT INTO `example`  VALUES (NULL, 'toto' )


 
 
Et puis, il y a 2 manières de récupérer le dernier ID auto-incrémenté.
 
1. mysql_insert_id()  (lien MySQL.com)
 
2. Une commande SQL directement (genre SELECT LAST_INSERT_ID()) mais pas recommandée car elle n'est pas connexion-persistent je pense (genre tu peux choper le dernier ID que quelqu'un d'autre a inséré après toi, si tu veux faire ça tu utilises MAX(tonchamp)..
Topic HFR sur la question

Reply

Marsh Posté le 14-07-2008 à 21:21:23    

ok merci, m'enfin votre mysql_insert_id() c'est du php :d je n'utilise pas php :)
 
mais bon je pense avoir contourné le problème de toute façon :hello:


---------------
- mon feed-back
Reply

Sujets relatifs:

Leave a Replay

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