Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2006, 17h31   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2005
Messages : 65
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 65
Points : 13
Points : 13
Par défaut Problème select LAST_INSERT_ID() renvoye 0

Bonjour

J'ai une table entries avec la colonne id en autoinc.
Je fais par exemple insert into entries(id,name) values (null,'test3') avec MySQL Query Browser, et ensuite select LAST_INSERT_ID() mais il me renvoye 0... J'ai pourtant bien l'entrée qui est crée ! (même que c'est l'id 35 )
C'est normal, pas normal, paranormal ?....
azerty25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 17h37   #2
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 52
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 52
Points : 36
Points : 36
Par défaut précision ?

Hello,

Est-ce dans une procedure stockée ?

Fais tu comme ci-dessous ?

SELECT LAST_INSERT_ID()
INTO id_table_
;

ou id_table_ est une variable de sortie ?

sinon tu peux aussi faire un select MAX(ID) FROM entries
filouxera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 17h42   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2005
Messages : 65
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 65
Points : 13
Points : 13
Euh, non, je fais comme je l'ai écris ci-dessus, dans MySQL Browser pour faire des essais.

Code :
INSERT INTO entries(id,name) VALUES (NULL,'test3')
Puis

Code :
SELECT LAST_INSERT_ID()
Je devrais faire comme tu le dis ?
azerty25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 17h55   #4
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 52
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 52
Points : 36
Points : 36
Pour SELECT LAST_INSERT_ID()

Tu peux regarder à l'adresse :
http://dev.mysql.com/doc/refman/5.0/...functions.html

Et essaie les exemples qui sont dedans.
filouxera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 17h56   #5
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
non, apres ton INSERT, tu fais juste

Code :
$Dernier_enreg = mysql_insert_id() ;
Citation:
mysql_insert_id() retourne le dernier identifiant généré par un champ de type AUTO_INCREMENT, sur la connexion MySQL courante ou sûr la connexion spécifiée par link_identifier.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 18h20   #6
Candidat au titre de Membre du Club
 
Inscription : octobre 2005
Messages : 65
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 65
Points : 13
Points : 13
Merci pour vos réponses. Je vais essayer ceci.
Par contre, je ne peux pas faire mysql_insert_id car je ne suis pas en PHP mais en .Net, j'aurai dû préciser.
azerty25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2006, 18h49   #7
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 52
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 52
Points : 36
Points : 36
Par défaut proc stock

le mieux serai de faire cela dans une proc stock.
filouxera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2006, 09h01   #8
Candidat au titre de Membre du Club
 
Inscription : octobre 2005
Messages : 65
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 65
Points : 13
Points : 13
J'ai pas trop compris pourquoi mais dans MySQL Query Browser, SELECT LAST_INSERT_ID(); renvoye toujours 0, et ailleurs (ligne de commande mysql ou dans mon programme), ça fonctionne bien !
Merci à vous
azerty25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 10h46   #9
Membre éclairé
 
Avatar de jota5450
 
Jota Alves
Inscription : janvier 2006
Messages : 263
Détails du profil
Informations personnelles :
Nom : Jota Alves
Âge : 36

Informations forums :
Inscription : janvier 2006
Messages : 263
Points : 303
Points : 303
slt.

azerty25 a écrit:
Citation:
J'ai pas trop compris pourquoi mais dans MySQL Query Browser, SELECT LAST_INSERT_ID();
renvoye toujours 0, et ailleurs
(ligne de commande mysql ou dans mon programme), ça fonctionne bien !

Parce que comme a dit N1bus, last_insert_id(), te renvoie le dernier auto-increment sur la connexion courante. Sur MySQL Query Browser, a moins que tu passe par des functions ou procedures, la connection est "nouvelle", et pourquoi il te renvoie "0".
jota5450 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2006, 15h15   #10
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
sinon, tu fais :
Code :
SELECT id FROM entries ORDER BY id DESC LIMIT 1
ça te retournera l'id du dernier enregistrement.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h03.


 
 
 
 
Partenaires

Hébergement Web