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 28/03/2006, 12h07   #1
Membre confirmé
 
Inscription : décembre 2005
Messages : 389
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : décembre 2005
Messages : 389
Points : 266
Points : 266
Par défaut avoir le prochain id ( get.nextSequence() )

je dois recuperer la valeur d un nouvel enregistrement sur un champ auto incremente

je peux donc faire un
Code :
1
2
 
SELECT max(id) FROM matable
puis
Code :
INSERT INTO matable ( id ) VALUES (   monid+1 )

sous oracle il existe un getnextsquence()

y a t il un equivalent sous mysql

merci
dietrich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2006, 12h24   #2
Membre du Club
 
Inscription : avril 2005
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 300
Points : 59
Points : 59
.

Je ne sais pas s'il existe une fonction pour cela.
A voir du coté documentation php, au niveau de leurs fontions.
Ou même dans la documentation de Mysql.

Une chose est certaine tu ne peux faire le select max(id) from table parce que si tu supprime le denier id (admettons 10), et que tu cherche le max id (ce sera donc 9), mais ton auto_increment ajoutera l'enregistrement à 11.
Thierry8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2006, 12h37   #3
Membre confirmé
 
Inscription : décembre 2005
Messages : 389
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : décembre 2005
Messages : 389
Points : 266
Points : 266
ok merci
dietrich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2006, 23h37   #4
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 73
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 73
Points : 32
Points : 32
Envoyer un message via MSN à kitiara999
salut


select last_insert_id(); est supposé fonctionner...
kitiara999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 16h17   #5
Membre confirmé
 
Inscription : décembre 2005
Messages : 389
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : décembre 2005
Messages : 389
Points : 266
Points : 266
ca me retourne toujours 0 meme si je fais

select last_insert_id() from transaction_id from matable
dietrich est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 21h15   #6
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 73
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 73
Points : 32
Points : 32
Envoyer un message via MSN à kitiara999
après quelqeus recherche sur le net j'ai découvert que
Code :
SHOW TABLE STATUS FROM DB_NAME LIKE 'TABLE_NAME';
donne comme résultat plusieurs colonne dont la colonne AUTO_INCREMENT
alors en faisant ceci:
Code :
1
2
3
4
5
6
 
ResultSet DATA = stmt.executeQuery("show table status from db_name like 'table_name'");
int nextId=-1;
IF(DATA.next()) 
    nextId =  getInt("Auto_increment");
}
tu devrait arriver à avoir le dernier id qui s'est insérer dans la BD.
kitiara999 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 13h28   #7
Membre régulier
 
Inscription : juillet 2004
Messages : 393
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 393
Points : 80
Points : 80
Ce serait peut être plus simple de mettre un Auto increment sur la table ?
shadeoner est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 13h36   #8
Membre du Club
 
Inscription : avril 2005
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 300
Points : 59
Points : 59
Citation:
Envoyé par shadeoner
Ce serait peut être plus simple de mettre un Auto increment sur la table ?
C'est ce qu'il fait, mais il souhaite connaître le dernier id a inseré.
Thierry8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 13h46   #9
Membre régulier
 
Inscription : juillet 2004
Messages : 393
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 393
Points : 80
Points : 80
Citation:
Envoyé par Thierry8
Citation:
Envoyé par shadeoner
Ce serait peut être plus simple de mettre un Auto increment sur la table ?
C'est ce qu'il fait, mais il souhaite connaître le dernier id inseré.
Bin non (vu dans l'en tête du topic) :

Code :
INSERT INTO matable ( id ) VALUES (   monid+1 )
shadeoner est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 14h03   #10
Membre du Club
 
Inscription : avril 2005
Messages : 300
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 300
Points : 59
Points : 59
Par défaut Re: avoir le prochain id ( get.nextSequence() )

Citation:
Envoyé par dietrich
je dois recuperer la valeur d un nouvel enregistrement sur un champ auto incremente
Thierry8 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2006, 14h29   #11
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Par défaut Re: avoir le prochain id ( get.nextSequence() )

Citation:
Envoyé par dietrich
je dois recuperer la valeur d un nouvel enregistrement sur un champ auto incremente

je peux donc faire un
Code :
1
2
 
SELECT max(id) FROM matable
puis
Code :
INSERT INTO matable ( id ) VALUES (   monid+1 )

sous oracle il existe un getnextsquence()

y a t il un equivalent sous mysql
Non

http://mysqldatabaseadministration.blogspot.com/2006/03/once-solution-to-triggers-with-auto.html
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h46.


 
 
 
 
Partenaires

Hébergement Web