Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/10/2006, 09h35   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 1
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 1
Points : 0
Points : 0
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 :
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 :
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 :
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" .
sylesis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2006, 15h05   #2
Membre habitué
 
Inscription : août 2005
Messages : 118
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 118
Points : 121
Points : 121
Par défaut Plus simple

Pour la première :
Code :
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 :
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 
);
d-jo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2006, 22h32   #3
Invité de passage
 
Inscription : novembre 2006
Messages : 2
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : novembre 2006
Messages : 2
Points : 4
Points : 4
Envoyer un message via MSN à DaMonkey
Ou encore (pour la secondes) :

Code :
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 ( )
DaMonkey est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h40.


 
 
 
 
Partenaires

Hébergement Web