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 [EMAIL PROTECTED] so that your > message can get through to the mailing list cleanly > ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match