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 30/03/2006, 15h17   #1
Membre régulier
 
Inscription : août 2005
Messages : 98
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : août 2005
Messages : 98
Points : 92
Points : 92
Par défaut [nextval, currval] Précisions

Bonjour, je me permets de faire appel à vos lumières. J'ai lu l'excellent tutoriel sur les séquences et il y est marqué que currval lève une exception si il n'a pas été fait appel à nextval dans la même cession.
Cependant, j'ai fait quelques tests avec pgAdmin III Query avec la commande suivante :
Code :
1
2
3
 
INSERT INTO test (nom) VALUES ('essai');
SELECT currval('test_id_seq');
et il ne me lève pas d'exception, c'est normal ?

Je précise que je n'ai pas fait appel à nexval avant.

Version PostgreSQL : 8.1.3
vincent.e est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 09h55   #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
Tout simplement, le champ id de la table test est de type SERIAL qui est un appel implicite a nextval.
__________________
Christophe Chauvet (KrysKool)
kryskool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 11h34   #3
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

la réponse était dans le tutoriel :
Citation:
Une séquence est implicitement créée lorsque l'on déclare la création d'une table avec une colonne de type SERIAL.
La colonne se transformera en type INTEGER mais aura une valeur par défaut à nextval('ma_sequence');
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2006, 14h40   #4
Membre régulier
 
Inscription : août 2005
Messages : 98
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : août 2005
Messages : 98
Points : 92
Points : 92
merci beaucoup. Je pensais que malgré que la séquence soit créée via le champ de type serial, il fallait quand même, en quelque sorte, l'instancier pour chaque utilisateur.
vincent.e 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 23h03.


 
 
 
 
Partenaires

Hébergement Web