IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

currval, nextval avec postgresql 7.3??


Sujet :

PostgreSQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 29
    Points
    29
    Par défaut currval, nextval avec postgresql 7.3??
    Bonjour,
    j'utilise postgresql 7.3.

    J'ai créer une table avec un champ de type serial en clé primaire. j'aimerai apres une insertion recuperer la valeur de la clé primaire. J'ai essayé basiquement avec un select mais à chaque fois cela me retournais Resource id #4.

    J'ai donc fais des recherches et constaté que c'etait des sequences. On peut les manipuler à l'aide de fonction tels que currval ou nextval (j'ai trouvé l'aide ici notamment http://dgriessinger.developpez.com/p...sql/sequences/)

    Avec currval j'ai l'erreur suivante : Warning: pg_query() query failed: ERROR: anciens_eleves_num_el_seq.currval is not yet defined in this session in...
    j'ai bien appellé ma sequence nomtable_nomcol_seq!

    J'ai essayé avec nextval et il me retourne encore Resource id #4.

    Qu'est ce que j'ai oublié? Problème de version? Aidez moi svp, merci
    Avez vous d'autres solutions

  2. #2
    Membre averti

    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 338
    Points : 404
    Points
    404
    Par défaut
    Avec currval j'ai l'erreur suivante : Warning: pg_query() query failed: ERROR: anciens_eleves_num_el_seq.currval is not yet defined in this session in...
    j'ai bien appellé ma sequence nomtable_nomcol_seq!

    J'ai essayé avec nextval et il me retourne encore Resource id #4.
    Effectivement avec un type SERIAL, il est très difficile ensuite de récupérer l'ID inséré, pour pouvoir utiliser currval il faut au préalable avoir utiliser nextval, Si tu veux récupérer ton ID après insertion, il va falloir modifier ta table comme ci dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    nom_colonne SERIAL,
     
    en 
     
    nom_colonne NOT NULL DEFAULT nextval('nom_table.nomcolonne.seq'),
    ensuite en utilisant currval, tu pourras récupérer ta valeur de l'ID pour la session en cours

    KrysKool
    Christophe Chauvet
    Consultant Odoo
    Python / PostgreSQL

  3. #3
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Bonjour et merci d'avoir lu mon tuto

    je n'ai peut etre pas assez expliquer dedans qu'il faut pour que les fonctions marches , un nextval soit appellé dans la meme session.
    Sinon l'appel à la fonction se fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT currval('anciens_eleves_num_el_seq');
    peux tu poster ta requete complete stp
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    j'ai fait un insert into et je voudrais recuperer le numero de la clé que serial a attribué.
    Dans la fonction que j'ai crée pour executer mes requete j'ai fais ceci
    SELECT nextval('anciens_eleves_num_el_seq')
    et à l'affichage j'obtiens ceci
    Resource id #4

    qu'est ce que tu veux savoir de plus sur ma requete?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    j'utilise phpPgAdmin et ma colonne à déja pour défaut
    nextval('public.anciens_eleves_num_el_seq'::text)?

    Que dois je faire désormais? Un grand merci

  6. #6
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Pour recupperer la valeur c'est la fonction currval, celle que tu utilise est nextval
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Merci hpalpha ton article sur les sequences m'avait bien aidé j'avais seulement une autre petite erreur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. développer un client VB avec PostGreSQL
    Par lucide dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 22/02/2005, 16h07
  2. Probleme avec postgresql et interface
    Par Missvan dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/05/2004, 16h32
  3. Démarrer avec PostgreSQL
    Par Neuromancien2 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/01/2004, 21h45
  4. Besoin d'aide avec postgresql sous windows NT
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/07/2003, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo