Re: Error on reference to inherited primary key
От | Stephan Szabo |
---|---|
Тема | Re: Error on reference to inherited primary key |
Дата | |
Msg-id | Pine.BSF.4.21.0104141147150.65159-100000@megazone23.bigpanda.com обсуждение исходный текст |
Ответ на | Error on reference to inherited primary key (rpijlman@spamcop.net) |
Список | pgsql-bugs |
On Fri, 13 Apr 2001 rpijlman@spamcop.net wrote: > Creating tables this way: > > A has a primary key > B inherits A > C references B > > results in an error message on the CREATE TABLE for C (ERROR: PRIMARY KEY for referenced table "b" not found). > > To reproduce: > > create table A > ( > id integer primary key > ); > > create table B > ( > dummy integer > ) inherits (A); > > create table C > ( > ref integer references B > ); > > psql:repro.sql:14: ERROR: PRIMARY KEY for referenced table "b" not found > > AFAIK the SQL code is correct. B should inherit the primary key from A, so C should be able to reference B. Primary keys/Unique constraints do not currently inherit (they should, but there are some questions about how they should). If you want id to have the properties of a primary key on B, you need to make a unique constraint on B, I believe the NOT NULL is already inherited. > The workaround appears to be explicitly naming the primary key column: > create table C > ( > ref integer references B(id) > ); This will not work for 7.1 since it checks for unique constraints (see above)
В списке pgsql-bugs по дате отправления: