IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils MySQL Discussion :

Problème select LAST_INSERT_ID() renvoye 0


Sujet :

Outils MySQL

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 68
    Points : 49
    Points
    49
    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 ?....

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 52
    Points : 50
    Points
    50
    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

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 68
    Points : 49
    Points
    49
    Par défaut
    Euh, non, je fais comme je l'ai écris ci-dessus, dans MySQL Browser pour faire des essais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into entries(id,name) values (null,'test3')
    Puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT LAST_INSERT_ID()
    Je devrais faire comme tu le dis ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 52
    Points : 50
    Points
    50
    Par défaut
    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.

  5. #5
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    non, apres ton INSERT, tu fais juste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Dernier_enreg = mysql_insert_id() ;
    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.

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 68
    Points : 49
    Points
    49
    Par défaut
    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.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 52
    Points : 50
    Points
    50
    Par défaut proc stock
    le mieux serai de faire cela dans une proc stock.

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 68
    Points : 49
    Points
    49
    Par défaut
    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

  9. #9
    Membre averti Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Points : 332
    Points
    332
    Par défaut
    slt.

    azerty25 a écrit:
    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".

  10. #10
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    sinon, tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id FROM entries ORDER BY id DESC LIMIT 1
    ça te retournera l'id du dernier enregistrement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JDBC savoir si la requête select a renvoyé des lignes ou pas
    Par dearraed dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/03/2010, 17h11
  2. Mise à jour Base relationnelle, probleme avec Select Last_Insert_id()
    Par SGASSAMA dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 13/07/2009, 19h19
  3. problème bloquant avec "SELECT LAST_INSERT_ID()"
    Par r2d2abc dans le forum JDBC
    Réponses: 15
    Dernier message: 21/04/2009, 01h56
  4. [TSQL] requête Select Last_insert_id
    Par antigone dans le forum Sybase
    Réponses: 4
    Dernier message: 08/05/2007, 15h28
  5. Limiter le nombre d'enregistrements renvoyés par un SELECT
    Par Wilco dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/11/2004, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo