Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 25/07/2007, 10h17   #1
Membre actif
 
Avatar de Nicomart
 
Inscription : septembre 2005
Messages : 206
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : septembre 2005
Messages : 206
Points : 176
Points : 176
Envoyer un message via Skype™ à Nicomart
Par défaut Connaître le prochain ID auto-increment

Bonjour à tous,

dans une page (php) d'ajout dans une table d'une base mysql, je dois afficher l'identifiant de l'enregistrement (clé primaire, auto-incrémentée) AVANT que la requête d'insert ne soit effectuée.

J'ai bien pensé à un SELECT MAX(`monid`) FROM matable; puis l'afficher avec une incrémentation de 1, mais cela ne tient pas la route si le (ou les) derniers enregistrements de la table ont été supprimés.

Une solution inélégante au possible consisterait à faire un enregistrement bidon juste avant l'insertion, récupérer son identifiant, supprimer cet enregistrement et ensuite afficher l'identifiant incrémenté de 1.

J'espère qu'il existe plus simple et plus élégant.

Merci de vos réponses

Nico
Nicomart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 11h58   #2
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Il y a LAST_INSERT_ID qui retourne le dernier n° affecté pour un auto_increment.
http://dev.mysql.com/doc/refman/5.0/...functions.html
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 14h46   #3
Membre régulier
 
Inscription : octobre 2006
Messages : 121
Détails du profil
Informations personnelles :
Âge : 61

Informations forums :
Inscription : octobre 2006
Messages : 121
Points : 90
Points : 90
Bonjour,
il me semble qu'une solution serait de créer un trigger after insert qui mémorise dans une table le last_insert_id();

Cordialement
Marc Salama
MarcS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2007, 15h12   #4
Membre actif
 
Avatar de Nicomart
 
Inscription : septembre 2005
Messages : 206
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : septembre 2005
Messages : 206
Points : 176
Points : 176
Envoyer un message via Skype™ à Nicomart
Merci de vos réponses, je vais fouiner dans cette direction
Nicomart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2007, 11h26   #5
Membre actif
 
Avatar de Nicomart
 
Inscription : septembre 2005
Messages : 206
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : septembre 2005
Messages : 206
Points : 176
Points : 176
Envoyer un message via Skype™ à Nicomart
Bon, je viens d'essayer de mettre en oeuvre. Dans la théorie, ça marche, mais dans la pratique, mysql query n'accepte pas deux requêtes à la fois :s
Je mets un nouveau post racontant mes malheurs, et j'update celui ci dès qu'il est posté pour le mettre en lien...

edit : http://www.developpez.net/forums/sho...01#post2345301

re-edit : solution adoptée détaillée dans le lien
Nicomart est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h47.


 
 
 
 
Partenaires

Hébergement Web