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 :

mysql_insert_id version PostgreSQL


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 17
    Points : 15
    Points
    15
    Par défaut mysql_insert_id version PostgreSQL
    Bonjour

    En cherchant sur le net une fonction pour remplacer mysql_insert_id pour PostgreSQL, j'ai trouvé cette article : http://www.sitepoint.com/print/site-mysql-postgresql-2
    qui donne à la fin de la page cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function postg_insert_id($tablename, $fieldname)
    {
     global $ouverture;
     $result = pg_exec($ouverture, "SELECT last_value FROM ${tablename}_${fieldname}_seq");
     $seq_array = pg_fetch_row($result, 0);
     return $seq_array[0];
    }
    Elle marche très bien mais je ne comprend pas comment elle fonctionne...
    Ce que je ne comprend pas c'est :
    last_value et la syntaxe ${tablename}_${fieldname}_seq

    Si qqn pouvait m'éclaircir.

    Merci d'avance

    melmel

  2. #2
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Points : 331
    Points
    331
    Par défaut
    les id comme tu l'entends sous mysql sont en fait des sequences sous postgres qui sont construits de cette façon : nomdelatable_nomduchamp_seq

    Ensuite la variable last_value te donne la valeur d'id libre à laquelle tu peux mettre ton nouvel enregistrement. C'est aps très français mais j'espère que tu comprends ce que je veux dire
    L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
    Pierre Desproges

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    C'est pas très clair...
    J'ai lu ca, http://dgriessinger.developpez.com/p...sql/sequences/, mais je ne comprend pas très bien ce que tu veux dire par :

    last_value te donne la valeur d'id libre à laquelle tu peux mettre ton nouvel enregistrement.
    Si last_value me donne la valeur d'id libre, il ne devrait rien avoir dans cet id, si ?
    Par exemple, les id 1, 2, 3 ont été créés. last_value me retourne 4 ?
    Je suis à l'ouest là ou c'est ca ? ^^
    Ce que je veux c'est bien l'id attribué à cet enregistrement, soit sa séquence, pas la suivante.
    A moins que SELECT soit super fort et qu'il me retourne la valeur juste avant last_value, qui est la bonne, non ?

    please help

  4. #4
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Points : 331
    Points
    331
    Par défaut
    autant pour moi je me suis trompé : ça te retourne la dernière valeur donc dans ton exemple ça te retourne 3

    désolé pour la mauvaise info (j'aurai du vérifier avant)
    L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
    Pierre Desproges

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Merci pour ton aide, c'est beaucoup plus clair maintenant

    melmel

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/07/2011, 23h13
  2. telechargement version postgresql pour windows
    Par kieffer dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 08/08/2007, 23h29
  3. peut on mettre a jour une ancienne version de postgresql
    Par gballou dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 28/11/2005, 16h01
  4. Quelle version de Postgresql pour mandrake 9.0 ?
    Par milka dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 09/03/2004, 11h45
  5. Version windows de PostGreSQL
    Par BONNEFOI Patrick dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 04/09/2003, 09h13

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