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 :

[REFERENCES/FOREIGN KEY]problème d'unicité de clé


Sujet :

PostgreSQL

  1. #1
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut [REFERENCES/FOREIGN KEY]problème d'unicité de clé
    Je me crée 2 tables dont dans une undes paramètres fait références à la première (je travaille directement sur psql.exe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    CREATE TABLE T_LIEU (
      id_lieu serial,
      LI_Ville VARCHAR(50), 
      LI_CodePostal int, 
      PRIMARY KEY(LI_Ville,LI_CodePostal)
    );
     
    CREATE TABLE t_patient
    (
      id_patient serial,
      pa_nom varchar(20),
      pa_prenom varchar(30),
      pa_id_lieu int4,
      FOREIGN KEY (pa_id_lieu) REFERENCES t_lieu (id_lieu)
    );
    A la création de la deuxième table, j'ai l'erreur suivante:
    NOTICE: CREATE TABLE will create implicit sequence "t_patient_id_patient_seq" for serial olumn "t_patient.id_patient"
    ERROR: there is no unique constraint matching given keys for referenced table "t_lieu"
    Je n'arrive pas à comprendre où l'unicité de la clé de contrainte entre en jeu

  2. #2
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    Bon, je pense avoir compris:
    a priori, il suffisait de déclarer le id_lieu comme unique (ce que je pensais implicite avec le SERIAL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE T_LIEU ( 
      id_lieu serial UNIQUE, 
      LI_Ville VARCHAR(50), 
      LI_CodePostal int, 
      PRIMARY KEY(LI_Ville,LI_CodePostal) 
    );

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

Discussions similaires

  1. Problème de création table InnoDb + Foreign key (150)
    Par Bensor dans le forum Requêtes
    Réponses: 1
    Dernier message: 29/09/2006, 01h17
  2. [Conception] problème avec la contrainte d'integrité foreign key
    Par zana74 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/08/2006, 21h42
  3. [SQL] FOREIGN KEY lors de la création de la base
    Par R.L. dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 31/05/2006, 16h36
  4. Problème avec foreign key
    Par bubi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/11/2005, 17h03
  5. problème avec Foreign Key [Interbase 7.5] [Delphi 2005]
    Par xenos dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/09/2005, 12h21

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