[Postgres] Pb d'heritage...
Salut,
voila j'ai donc une table ordi :
Code:
1 2 3
|
create table ORDI (
ORDIID SERIAL not null PRIMARY KEY); |
une table composant (parent) :
Code:
1 2 3
|
create table COMPOSANT (
COMPOSANTID SERIAL not null PRIMARY KEY); |
des enfants de composant (par ex cpu):
Code:
1 2 3 4
|
create table CPU (
CPUVITESSE INT4 null)
INHERITS (composant); |
et une table intermédiaire entre composant et ordi :
Code:
1 2 3 4
|
create table possede(
COMPOSANTID INT4 not null REFERENCES composant,
ORDIID INT4 not null REFERENCES ordi); |
Bon voila pour la base.
Mon pb maintenant :
si j'insère un composant et un ordi puis un INSERT dans ma table intermèdiare POSSEDE, la pas de pb.
Maintenant si j'insère un CPU, qui va me créer un composantid dans la table cpu et par conséquent dans la table composant(lien d'heritage) puis que je relie a ordi via possede, j'ai alors une erreur me disant que la clef étrangère possede_composantid ne peux être créer car elle fait référence a une clef ki n'existe pas. Cest un peu comme si le composantid n'etait que l'id de cpu et pas de composant.
Alors que lorsque je fait un :
Code:
1 2
|
SELECT * FROM COMPOSANT; |
j'obtient bien tous mes composant inséré via la table CPU.
Ma question est :
S'agit-il d'un bug de Postgres ? Ou ai-je foiré quelque chose ?