On Fri, Sep 12, 2008 at 12:14 PM, Rafael Domiciano <[EMAIL PROTECTED]> wrote: > Hi there, > > In my DB I have a couple of FK, so the change of referenced columns is a > quite complicated. > Today, I DISABLE TRIGGER ALL on the tables envolved and then ENABLE TRIGGER > ALL to back them. > Is there a better way to do that?
Depends. Are other people connected to the server when you do it? disable trigger disables the triggers for everybody, not just you if I remember correctly. If other folks are using the db, then they can insert bad data during that period. > I read something about SET CONSTRAINTS ALL DEFFERED, but I don't know how to > use it. the constraints have to created as deferrable to do that. then, in a transaction, you can do something like: begin; update in a way that would normally violate an FK insert in a way that fixes the previous statement's FK relationship commit; and it will work as long as the constraints all make sense by the time you get to commit. Note that unique constraints are not deferrable in pgsql. -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql