On Wed, 16 May 2001 pgsql-bugs@postgresql.org wrote:
> Stephen Deasey (sdeasey@bigfoot.com) reports a bug with a severity of 2
> The lower the number the more severe it is.
>
> Short Description
> Foreign key constraints on inherited columns, 2 errors.
>
> Long Description
> Using the Postgres 7.1.1 RPMs I typed the following into psql:
>
> =# create table foo (foo integer);
> CREATE
> =# create table bar (bar integer) inherits(foo);
> CREATE
> =# create table baz (baz integer references bar(foo));
> NOTICE: CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
> ERROR: UNIQUE constraint matching given keys for referenced table "bar" not found
>
>
> I think this is incorrect, and it is not the behaviour I was seeing
> with version 7.0.3 where it worked as expected.
No, actually it didn't really. If bar had non-unique values the
references constraint would do fairly random bad things. SQL
requires the unique constraint on the columns, and so do we now.
Just add a UNIQUE(foo) to bar's definition and it should work.