On Fri, 19 May 2006, Kaloyan Iliev wrote:
> Hi Friends,
>
> I am trying to postpone the foreign key constraint check till the end of
> transaction but it doesn't work.
> Can anyone help me with a tip what I am doing wrong.
Was the constraint created as deferrable (which is not the default)?
ALL DEFERRED actually only applies to deferrable constraints.
>
> Thanks in advance.
>
> Kaloyan Iliev
>
> test=# BEGIN;
> BEGIN
> test=#
> test=# SET CONSTRAINTS ALL DEFERRED;
> SET CONSTRAINTS
> test=# DELETE FROM picture
> test-# USING
> element_picture
> test-# WHERE
> picture.id = element_picture.picture_id
> test-#
> AND element_picture.element_id = 8;
> ERROR: update or delete on "picture" violates foreign key constraint
> "picture_id" on "element_picture"
> DETAIL: Key (id)=(223) is still referenced from table "element_picture".
>
>
> select version();
> version
> ------------------------------------------------------------------------------------------------
> PostgreSQL 8.1.2 on i386-portbld-freebsd6.0, compiled by GCC cc (GCC)
> 3.4.4 [FreeBSD] 20050518
> (1 row)
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>