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 :

Problème d'insert, clé étrangère


Sujet :

PostgreSQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut Problème d'insert, clé étrangère
    Bonjour à tous,

    Je vais tout d'abord vous présenter en gros mon schéma de base

    TABLE ENLEVEMENT : id_enlevement(clé primaire), date .... etc
    TABLE ENLEVEMENT_LIGNE : id_enlevement_ligne(clé primaire), id_enlevement (clé étrangère)

    Je fais tout d'abord un Insert dans la premiere table sans soucis, puis quand je veux faire un insert dans la seconde, je recup le "id_enlevement" de la premiere table pour l'insérer dans la seconde et la Erreur : violates foreign key constraint

    Comment puis je faire pour insérer l'id_enlevement de la 1e dans la seconde sans soucis?

    Merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    J'ai tenté de récupérer le champ qui m'intéresse en faisant un Select directement dans mon Insert, et toujours la même erreur.

    Need help please

  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
    Peux tu mettre exactement, les DDL des tables (le create) et les INSERT que tu fais ?

    Grossomodo, ca se passe comme ca :

    insert into t_enlevement (33,2007-01-01::date,'infos');

    insert into t_enlevement_ligne(767,33);

    si tes identifiants sont de type serial tu peux jouer avec les currval.

    insert into t_enlevement (DEFAULT,2007-01-01::date,'infos');

    insert into t_enlevement_ligne(DEFAULT,currval('masequence'));

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par hpalpha
    Peux tu mettre exactement, les DDL des tables (le create) et les INSERT que tu fais ?

    Grossomodo, ca se passe comme ca :

    insert into t_enlevement (33,2007-01-01::date,'infos');

    insert into t_enlevement_ligne(767,33);

    si tes identifiants sont de type serial tu peux jouer avec les currval.

    insert into t_enlevement (DEFAULT,2007-01-01::date,'infos');

    insert into t_enlevement_ligne(DEFAULT,currval('masequence'));
    Bonjour,

    Je viens de trouver le problème, au moment de mes insertions, je récupérais la valeur de clé primaire dans une variable, pour l'insérer dans ma clé étrangère de seconde table, mais en fait j'ai pensé a faire pg_escape_string($mavariable) et là l'insertion fonctionne.

    Pourtant j'avais déjà eu ce genre de problemes auparavant, mais je croyais que ca venait de mes contraintes le problème.

    Donc c'est résolu.

    Merci tout de même pour ton aide

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/04/2012, 00h53
  2. [MySQL] problème d'insertion dans des tables qui contiennent des clés étrangère
    Par shurik'n dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 13/04/2012, 22h32
  3. [Data] Problème d'insertion + Clé étrangère
    Par rimoucha87 dans le forum Spring
    Réponses: 2
    Dernier message: 20/05/2011, 19h46
  4. Réponses: 6
    Dernier message: 18/04/2011, 15h40

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