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 :
Celle ci passe sans problème.
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);
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é :
et
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);
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" .
Partager