Re: BUG #6054: Insert to table, which has fkey to table,which is parenttable for another table - error

From: Robert Haas <robertmhaas(at)gmail(dot)com>
To: Alex <alexander(dot)ochkalyuk(at)gmail(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6054: Insert to table, which has fkey to table,which is parenttable for another table - error
Date: 2011-06-16 19:40:32
Message-ID: BANLkTik34=sxJySnmc0vBsw2XE_SJCeZ3w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Tue, Jun 7, 2011 at 8:44 AM, Alex <alexander(dot)ochkalyuk(at)gmail(dot)com> wrote:
>
> The following bug has been logged online:
>
> Bug reference:      6054
> Logged by:          Alex
> Email address:      alexander(dot)ochkalyuk(at)gmail(dot)com
> PostgreSQL version: 8.4.8
> Operating system:   CentOS
> Description:        Insert to table, which has fkey to table,which is
> parenttable for another table - error
> Details:
>
> CREATE TABLE t1
> (t1_id numeric(10,0) NOT NULL PRIMARY KEY);
>
> CREATE TABLE t2
> (t2_id numeric(10,0) NOT NULL PRIMARY KEY) INHERITS (t1);
>
>
> CREATE TABLE t3
> (t3_id numeric(10,0) NOT NULL PRIMARY KEY ,
> t1_id numeric(10,0) NOT NULL REFERENCES t1(t1_id)) ;
>
>
>
> INSERT INTO t2 VALUES(1,2);
> INSERT INTO t3 VALUES(3,1);
>
>
> ERROR:  insert or update on table "t3" violates ---
> foreign key constraint "t3_t1_id_fkey"
>     DETAIL:  Key (t1_id)=(1) is not present in table "t1".
>
>
> BUT!!!!
> SELECT t1_id FROM t1 WHERE t1_id = 1;
> -->1

When you use a foreign key with inheritance, only the rows that are
actually in the parent table itself are considered for purposes of the
foreign key.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message Robert Haas 2011-06-16 19:42:26 Re: BUG #6053: Can't do DISTINCT on citext column
Previous Message Robert Haas 2011-06-16 19:39:03 Re: Behaviour of triggers on replicated and non replicated tables