inheritance and foreign keys

Поиск
Список
Период
Сортировка
От Thomas F. O'Connell
Тема inheritance and foreign keys
Дата
Msg-id 3ACE1CEA.8060301@monsterlabs.com
обсуждение исходный текст
Ответы Re: inheritance and foreign keys  ("Oliver Elphick" <olly@lfix.co.uk>)
Список pgsql-general
this might actually involve two separate issues. one is empty
inheritance (which i'll describe in a second); the other is inheritance
and foreign keys.

here is a description of what i want to do:

i want to create a table as a super-class. then i want to create a
sub-class of that table that has exactly the same column set. then i
want to create another table that has a foreign key that references a
column in the sub-class that is a primary key of the super-class.

here is a basic psql sequence that is what i am attempting:

$psql test_db
test_db=# create table foo( id int2 primary key );
NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'foo_pkey'
for table 'foo'
CREATE
test_db=# create table sub_foo() inherits( foo );
CREATE
test_db=# create table bar( sub_foo_id int2 references sub_foo( id ) );
NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY
check(s)
ERROR:  UNIQUE constraint matching given keys for referenced table
"sub_foo" not found

why do i get the ERROR at the end of that sequence of commands? i don't
understand why there would be a failed UNIQUE constraint matching or
even where that is actually occurring. if i add UNIQUE to bar above, i
get the same error.

is it not possible to reference the keys of a sub-classed table directly
from a foreign table?

-tfo


В списке pgsql-general по дате отправления:

Предыдущее
От: "Nick T"
Дата:
Сообщение: information on users
Следующее
От: missive@frontiernet.net (Lee Harr)
Дата:
Сообщение: Re: Why are quotes required around table / column names in SQL statements?