PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 06/11/2015 11:57:35

Nemesis-fr
Membre

Impossible d'utiliser CURRVAL()

Bonjour tout le monde,
Je m'appel Jonathan et si je suis ici c'est parce que j'ai besoin de vos lumières !
Voila j'aimerais connaitre la valeur actuelle d'une de mes séquences créée automatiquement lors de la création d'une de mes tables (id de type sérial).

Je pensais me trompé dans le nom mais lorsque je liste les séquences avec :

SELECT * FROM information_schema.sequences ;

Je trouve  :
"LogicielGestion";"public";"Reparation_reparations_id_seq";"bigint";64;2;0;"1";"1";"9223372036854775807";"1";"NO"
"LogicielGestion";"public";"personne_seq";"bigint";64;2;0;"1";"1";"999999999999999999";"1";"NO"
"LogicielGestion";"public";"Voitures_voitures_id_seq";"bigint";64;2;0;"1";"1";"9223372036854775807";"1";"NO"
"LogicielGestion";"public";"TJ_VOITURES_REPARATIONS_TJ_id_seq";"bigint";64;2;0;"1";"1";"9223372036854775807";"1";"NO"
"LogicielGestion";"public";"Personnes_personnes_id_seq";"bigint";64;2;0;"1";"1";"9223372036854775807";"1";"NO" (Je veux travailler sur celle-ci)



Donc lorsque je fais ma requête pour connaitre la valeur :

SELECT CURRVAL('Personnes_personnes_id_seq') ;

Il me trouve ceci :

ERREUR:  la relation « personnes_personnes_id_seq » n'existe pas
LINE 1: SELECT CURRVAL('personnes_personnes_id_seq') ;
                       ^

********** Erreur **********

ERREUR: la relation « personnes_personnes_id_seq » n'existe pas
État SQL :42P01
Caractère : 16




Ca fait deux jours que je bloque ^^
Merci beaucoup de votre aide !

Hors ligne

#2 06/11/2015 12:19:14

gleu
Administrateur

Re : Impossible d'utiliser CURRVAL()

Vu que vous avez mis des majuscules dans le nom des séquences, vous devez ajouter des guillemets doubles. Par exemple : SELECT CURRVAL('"Personnes_personnes_id_seq"') ; (guillemet simple, puis guillemet double, puis chaîne de caractères, puis guillemet double, puis guillemet simple).


Guillaume.

Hors ligne

#3 06/11/2015 12:58:20

Nemesis-fr
Membre

Re : Impossible d'utiliser CURRVAL()

Bonjour !
Merci beaucoup gleu de votre aide je suis gêné d'avoir été bloqué avec une erreur si basique !
Cela fonctionne maintenant. J'aurais cependant une question, quand j'ai fais mon CURRVAL il m'a mit cette erreur :

ERREUR:  la valeur courante (currval) de la séquence « Personnes_personnes_id_seq » n'est pas encore définie
dans cette session
********** Erreur **********

ERREUR: la valeur courante (currval) de la séquence « Personnes_personnes_id_seq » n'est pas encore définie
dans cette session
État SQL :55000




J'ai donc fait un NEXTVAL qui m'a donc sorti la valeur 16. Et lorsque j'ai enfin refait mon CURRVAL l'erreur n'y été plus je ne comprends pas.

Hors ligne

#4 06/11/2015 13:17:03

edlm
Membre

Re : Impossible d'utiliser CURRVAL()

Bonjour,


c'est le comportement attendu de la fonction currval:

Renvoie la valeur la plus récemment retournée par nextval pour cette séquence dans la session courante. (Une erreur est rapportée si nextval n'a jamais été appelée pour cette séquence dans cette session.)


Éric

Hors ligne

#5 06/11/2015 14:35:13

Nemesis-fr
Membre

Re : Impossible d'utiliser CURRVAL()

Ok très bien merci beaucoup edlm. On peut dire que le sujet est résolut !

Encore merci beaucoup tout le monde !

Hors ligne

Pied de page des forums