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

Requêtes PostgreSQL Discussion :

[postgresql][foreign key]


Sujet :

Requêtes PostgreSQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut [postgresql][foreign key]
    Bonjour,

    Je voudrais creer une table contenant une clé étrangère et je voudrais que la valeur de la clé étrangère puisse être à null, car j'insère mes données dans la première table avant de remplir la table contenant la clé étrangère.


    ex:

    CREATE TABLE treatment (id_trt serial NOT NULL, name_trt varchar(70) NOT NULL,PRIMARY KEY (id_trt));


    CREATE TABLE patient (id_pat serial NOT NULL, name_pat varchar(70) NOT NULL, id_trt integer null,PRIMARY KEY (id_pat ), foreign key (id_trt) REFERENCES treatment (id_trt) ON UPDATE CASCADE ON DELETE CASCADE );

    Voila je veux insérer les données dans la table patient avant celles de la table traitement, et lorsque j'esaie j'ai un message d'erruer:
    ERROR: <unnamed> referential integrity violation - key referenced from patient not found in treatment


    Pourriez vous m'éclairer ?Merci

  2. #2
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 172
    Points
    172
    Par défaut Re: [postgresql][foreign key]
    Citation Envoyé par elea1206
    Bonjour,

    Je voudrais creer une table contenant une clé étrangère et je voudrais que la valeur de la clé étrangère puisse être à null, car j'insère mes données dans la première table avant de remplir la table contenant la clé étrangère.


    ex:

    CREATE TABLE treatment (id_trt serial NOT NULL, name_trt varchar(70) NOT NULL,PRIMARY KEY (id_trt));


    CREATE TABLE patient (id_pat serial NOT NULL, name_pat varchar(70) NOT NULL, id_trt integer null,PRIMARY KEY (id_pat ), foreign key (id_trt) REFERENCES treatment (id_trt) ON UPDATE CASCADE ON DELETE CASCADE );
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    create table patient(
    id_pat serial not null primary key,
    name_pat varchar(70) not null,
    id_trt integer,
    constraint fk_patient foreign key (id_trt) references treatment(id_trt) on update cascade on delete cascade
    );

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci, mais cela ne change rien j'ai toujours le message d'erreur:

    ERROR: fk_patient referential integrity violation - key referenced from patient not found in treatment

    quand j'essaie d'insérer des données dans la table patient en laissant la colonne id_trt vide


  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Désolée, en fait ca fonctionne bien ta solution.


    Merci !

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    En fait , je ne comprends pas trop où est la différence. En quoi le fait de donner un nom a la contrainte tout en gardant le reste autorise les valeurs nulles?

    :

  6. #6
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 172
    Points
    172
    Par défaut
    Citation Envoyé par elea1206
    En fait , je ne comprends pas trop où est la différence. En quoi le fait de donner un nom a la contrainte tout en gardant le reste autorise les valeurs nulles?

    :
    De rien elea
    l'erreur je crois c'est que t'avais rajouter NULL après ton champ

Discussions similaires

  1. [PostgreSQL 7.4] Permission denied sur une foreign key
    Par Lorenzeb dans le forum Administration
    Réponses: 5
    Dernier message: 23/12/2009, 14h35
  2. Probleme 'ALTER TABLE' et 'FOREIGN KEY'
    Par maahta dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 30/09/2003, 14h25
  3. [IB71] Je ne peux plus supprimer mes foreign key...
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 3
    Dernier message: 19/09/2003, 14h39
  4. [postgresql][foreign key]
    Par elea1206 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 28/08/2003, 12h07
  5. [Foreign Key] Besoin d'explication.
    Par Andry dans le forum Débuter
    Réponses: 4
    Dernier message: 28/05/2003, 11h34

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