Re: converting FK's to "DEFERRABLE"

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Vivek Khera <khera@kcilink.com>
Cc: pgsql-general@postgresql.org
Date: 2004-09-17T19:27:10Z
Lists: pgsql-general
Vivek Khera <khera@kcilink.com> writes:
> Anyhow, is there some trickier way to make an FK deferrable?

Hack its pg_constraint.condeferrable and pg_constraint.condeferred
fields (the latter is the INITIALLY DEFERRED flag).  You will also
need to find the triggers that implement the constraint and update
their pg_trigger.tgdeferrable and pg_trigger.tginitdeferred copies
of these values.  Then start fresh backend sessions and I think
you're there.

AFAIK the most reliable way to find the triggers is to follow the
linking entries in pg_depend.

			regards, tom lane