Vivek Khera <khera(at)kcilink(dot)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