Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
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 11/02/2005, 09h39   #1
Nouveau Membre du Club
 
Inscription : décembre 2004
Messages : 89
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 89
Points : 34
Points : 34
Par défaut Obtenir la valeur d'un SERIAL: équivalent à mysql_insert_id

Bonjour.

Avec MySQL, lorsqu'on souhaite obtenir la valeur d'une variable AUTO_INCREMENT fraichement insérée, on utilise mysql_insert_id pour récupérer la valeur ainsi générée.

Comment faire avec Postgresql pour récupérer la valeur d'une variable SERIAL issue de l'execution de la requete réalisée avec la connexion en cours (car entre temps d'autres utilisateurs ont pu insérer des enregistrements dans la table)?

Merci.
Pigoulou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2005, 11h35   #2
Membre éclairé
 
Inscription : janvier 2005
Messages : 336
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2005
Messages : 336
Points : 353
Points : 353
Bonjour

Vu dans la doc
Citation:
currval
Return the value most recently obtained by nextval for this sequence in the current session. (An error is reported if nextval has never been called for this sequence in this session.) Notice that because this is returning a session-local value, it gives a predictable answer whether or not other sessions have executed nextval since the current session did.

Traduction
Renvoit la valeur la plus récemment obtenue par nextval pour cette séquence dans la session actuelle. (Une erreur est rapportée si nextval n'a jamais été appelé pour cette séquence dans cette session.) Notez que, parce qu'il renvoie une valeur locale à la session, il donne une réponse prévisible même si les autres sessions exécutent nextval entre temps.
Il faut l'utilisé comme suit :

Code :
SELECT currval('nom_de_sequence');
KrysKool
kryskool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2005, 11h55   #3
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
J'ai écris un petit tutoriel sur les séquences :

http://dgriessinger.developpez.com/p...sql/sequences/

bonne lecture
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2005, 12h20   #4
Nouveau Membre du Club
 
Inscription : décembre 2004
Messages : 89
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 89
Points : 34
Points : 34
Merci à vous deux pour ces infos, et félicitations pour ce tutoriel.
Pigoulou 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 19h43.


 
 
 
 
Partenaires

Hébergement Web