Search Postgresql Archives

Table inheritance foreign key problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

One of the caveats described in the documentation for table inheritance is that foreign key constraints cannot cover the case where you want to check that a value is found somewhere in a table or in that table's descendants. It says there is no "good" workaround for this.

What about using check constraints?

So say you've got cities and capitals from the example and you had some other table that wanted to put a foreign key on cities (plus capitals). For example, lets keep "guidebook" info for the cities. Some cities are worthy of guidebooks even though they're not capitals. Rather than put a foreign key constraint on "city", would the following work? What are the drawbacks?

create table guidebooks (
  city check (city in (select name
                         from cities)),
  isbn text,
  author text,
  publisher text);

insert into guidebooks ('Barcelona', ....) -- not a capital
insert into guidebooks ('Edinburgh', ....) -- a capital
insert into guidebooks ('France', ....) -- fail

--
Andy Chambers

--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux