Re: Changes to not deferred FK in 8.0.3 to 7.4?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Janning Vygen <vygen(at)gmx(dot)de>
Cc: Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Changes to not deferred FK in 8.0.3 to 7.4?
Date: 2005-07-19 13:40:18
Message-ID: 23276.1121780418@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Janning Vygen <vygen(at)gmx(dot)de> writes:
> On more related question:
> I updated pg_trigger and pg_constraint and changed all my FK:

> UPDATE pg_trigger
> SET
> tgdeferrable = true,
> tginitdeferred = true
> WHERE tgconstrname LIKE 'fk_%'
> ;

> UPDATE pg_constraint
> SET
> condeferrable = true,
> condeferred = true
> WHERE conname LIKE 'fk_%'
> ;

No, only the triggers that are for checks should be marked
deferrable/deferred. These are the ones using functions
RI_FKey_check_ins
RI_FKey_check_upd
RI_FKey_noaction_del
RI_FKey_noaction_upd
You want the others nondeferrable because (a) that's the standard
behavior and (b) it'll ensure that the actions happen before the
checks are made.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David Parker 2005-07-19 13:51:50 pg_dump and write locks
Previous Message Ilja Golshtein 2005-07-19 12:19:58 Re: Old question - failed to find conversion function from "unknown"