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 de clé étrangère


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1
    Par défaut Problème de clé étrangère
    J'ai un petit soucis avec une clé étrangère dans une table et comme je n'ai pas pratiqué le sql depuis presque deux ans, je ne sais pas si le problème vient de la syntaxe ou de postgres lui même .
    La requête pour créer la première table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table x ( 
    ref_x integer not null primary key, 
    name_x varchar(32) not null);
    Celle ci passe sans problème.
    La deuxième table que je désire lier à la première via une clé étrangère ne passe pas par contre, voici les deux syntaxes que j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table y ( 
    ref_x integer not null foreign key references x(ref_x), 
    nb_y integer not null default 0);
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table y ( 
    ref_x not null primary key, 
    nb_y integer not null default 0, foreign key ref_x references x(ref_x));

    Dans la première version de la requête, postgres indique que l'erreur se situe au niveau du "foreign" , dans la deuxième le problème se situerait au niveau du ref_x suivant "foreign key" .

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2005
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 118
    Par défaut Plus simple
    Pour la première :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE TABLE y ( 
    ref_x integer NOT NULL REFERENCES x, 
    nb_y integer NOT NULL DEFAULT 0);
    Pour la seconde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE TABLE y ( 
    ref_x integer REFERENCES x, 
    nb_y integer NOT NULL DEFAULT 0, 
    PRIMARY KEY ref_x 
    );

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2
    Par défaut
    Ou encore (pour la secondes) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE y ( 
      ref_x NOT NULL PRIMARY KEY, 
      nb_y integer NOT NULL DEFAULT 0,
      FOREIGN KEY (ref_x) REFERENCES x(ref_x)
    );
    avec "ref_x" entre ( )

Discussions similaires

  1. [phpMyAdmin] Problème création Clé étrangère (FK)
    Par irnbru dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 16/05/2007, 19h34
  2. [MySQL] problème de clé étrangère
    Par kluck3000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/05/2007, 16h17
  3. Problème avec clé étrangère
    Par gothard dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 22/02/2007, 16h50
  4. Problème création clés étrangères
    Par sat478 dans le forum Débuter
    Réponses: 1
    Dernier message: 01/05/2006, 15h53
  5. [IB6] Problème de clef étrangère
    Par Neilos dans le forum InterBase
    Réponses: 8
    Dernier message: 28/03/2006, 19h40

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