CHRIS HOOVER
2004-05-13 14:34:00 UTC
I need some help understanding and creating foreign keys in postgresql.
Here is an example of what I am trying to do:
I have table 1 with:
table1_id serial unique
table1_col1 varchar
I have table2 with:
table2_id serial unique
table1_id integer
table2_col1 varchar
When I try to create the foreign key with
alter table "schema_name"."table1"
add foreign key ("table1_id")
references "schema_name"."table2"("table1_id")
on delete cascade
on update cascade
not deferrable;
Postgres complains with:
ERROR: UNIQUE constraint matching given keys for referenced table "table2" not
found.
Why is postgresql demanding a unique key on table2.table1_id? It is a foreign
key in a parent/child 1 to many relationship.
Please help me understand what is going on, and what I am missunderstanding
about foreign keys.
Thanks
chris
Postgresql 7.3.4 on RH ES 2.1
---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings
Here is an example of what I am trying to do:
I have table 1 with:
table1_id serial unique
table1_col1 varchar
I have table2 with:
table2_id serial unique
table1_id integer
table2_col1 varchar
When I try to create the foreign key with
alter table "schema_name"."table1"
add foreign key ("table1_id")
references "schema_name"."table2"("table1_id")
on delete cascade
on update cascade
not deferrable;
Postgres complains with:
ERROR: UNIQUE constraint matching given keys for referenced table "table2" not
found.
Why is postgresql demanding a unique key on table2.table1_id? It is a foreign
key in a parent/child 1 to many relationship.
Please help me understand what is going on, and what I am missunderstanding
about foreign keys.
Thanks
chris
Postgresql 7.3.4 on RH ES 2.1
---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings