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 :

insertion avec contrainte sur clef primaire ?


Sujet :

PostgreSQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut insertion avec contrainte sur clef primaire ?
    Hello


    Je cherche un moyen d'inserer les donnée selon l'id de la clé primare, depuis une autre table qui elle,a une contrainte de type clé étrangère
    (aussi appeler intégrité référentiel).


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE table_principal (exist integer,datescan text,path text UNIQUE ,keyid serial PRIMARY KEY);
    CREATE TABLE table_droit (md5 text,id integer REFERENCES table_principal (keyid),quantite integer);
    INSERT INTO table_principal(exist,datescan,path,keyid) VALUES ('1','12.12.12','/mon/fichier',default);
    comment inserer l'id(trouver sa valeur) ? vu que l'insertion précédante ne me dit pas qu'elle est le nouveau keyid ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table_droit(md5,id,quantite) VALUES ('md5','1','23');
    je doit faire un un select avant chaque entrée pour connaître le keyid ?
    Sure le livre mysql 5 il y aurait LAST_INSERT_ID qui permet de connaître le dernier numéro insérer de la clef primaire ,valable uniquement dans la connections en cours, seulement sous postgres j'ai rien trouver ?

    si je doit faire un select sa va alourdir mon code en c++

    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Le plus simple est d'ajouter RETURNING keyid à l'INSERT pour qu'il renvoie cette valeur.
    La récupération des résultats se fait comme si c'était un SELECT.

    Voir la doc d'INSERT pour plus d'infos.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2006
    Messages : 412
    Points : 149
    Points
    149
    Par défaut
    Merci pour ta réponse, sa me sort une épine du pieds
    j'avais pas vu la fin de la doc. certainement la fatigue

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

Discussions similaires

  1. [WD 11] Insertion avec contrainte d'intégrité
    Par leroidje dans le forum WinDev
    Réponses: 9
    Dernier message: 11/12/2007, 14h27
  2. MAJ d'un champ d'une table avec condition sur clef primaire commune
    Par ar|equin dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/05/2007, 13h57
  3. Réponses: 13
    Dernier message: 12/01/2006, 10h45
  4. Insert avec select sur table avec Trigger d'insertion
    Par bran_noz dans le forum Développement
    Réponses: 5
    Dernier message: 23/12/2005, 14h38
  5. INSERT avec procédure stockée / Clef de type AutoInc
    Par bgdelphi dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/10/2003, 18h30

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