Re: Unexpected behaviour of 'DEFERRABLE INITIALLY DEFERRED' - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Unexpected behaviour of 'DEFERRABLE INITIALLY DEFERRED'
Date
Msg-id 5655CA18.3030208@aklaver.com
Whole thread Raw
In response to Unexpected behaviour of 'DEFERRABLE INITIALLY DEFERRED'  (Jong-won Choi <jongwon.choi@internode.on.net>)
List pgsql-general
On 11/25/2015 04:32 AM, Jong-won Choi wrote:
> Hi all,
>
> This is from my local PostgreSQL log:
>
> ====
> LOG:  statement: begin;
> LOG:  statement: INSERT INTO site_owner (email, name, pwhash, data)
> VALUES ('xyz', 'xyz', crypt('xyz', gen_salt('bf', 8)), '{}'::JSONB)
> RETURNING id;
> LOG:  statement: INSERT INTO site (owner, name, timezone, data) VALUES
> ('150c2fff-1029-47a5-aaa8-3e974e8442c6', 'sitex', 'Australia/NSW',
> '{}'::JSONB) RETURNING id;
> LOG:  statement: commit;
>
> ----
>
> LOG:  statement: BEGIN
> LOG:  execute <unnamed>: INSERT INTO site_owner (email, name, pwhash,
> data) VALUES ($1, $2, crypt($3, gen_salt('bf', 8)), $4::JSONB) RETURNING id
> DETAIL:  parameters: $1 = 'test@email6', $2 = 'Name', $3 = 'password',
> $4 = '{}'
> LOG:  execute <unnamed>: INSERT INTO site (owner, name, timezone, data)
> VALUES ($1, $2, $3, $4::JSONB) RETURNING id
> DETAIL:  parameters: $1 = '3a83db7f-c82e-4b7a-a5c7-c0b43f415b0e', $2 =
> 'Test', $3 = 'Australia/NSW', $4 = '{}'
> ERROR:  insert or update on table "site" violates foreign key constraint
> "site_owner_fkey"
> DETAIL:  Key (owner)=(3a83db7f-c82e-4b7a-a5c7-c0b43f415b0e) is not
> present in table "site_owner".
> LOG:  statement: ROLLBACK
> ====
>
>
> The first 'successful' part is a result of SQL statements from psql, and
> the second 'unsuccessful' part is a result of client library function
> calls from my application.
>
> It seems to me they both have the same structure, except the first part
> is consist of 'statements' and the second part is consist of
> 'execute'(prepare statements, I guess).
>
> Any hints which can make the second part successful?

First what has this to do with the subject, in particular "'DEFERRABLE
INITIALLY DEFERRED"?

The error seems fairly straight forward:

ERROR:  insert or update on table "site" violates foreign key constraint
"site_owner_fkey"
DETAIL:  Key (owner)=(3a83db7f-c82e-4b7a-a5c7-c0b43f415b0e) is not
present in table "site_owner"

To understand more we will need to see the schema for:

site_owner
site

including the FK relationship between them.

Also what is creating the owner key in site_owner as I do not see that
field in the INSERT to site_owner.


>
> Thanks
>
> - Jong-won
>
>


--
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Problems with pg_upgrade after change of unix user running db.
Next
From: Yuriy Rusinov
Date:
Subject: Convert from hex to string