Re: Temporally disabled foreign key constraint check?

From: raghu ram <raghuchennuru(at)gmail(dot)com>
To: emilu(at)encs(dot)concordia(dot)ca
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Temporally disabled foreign key constraint check?
Date: 2011-10-22 21:49:55
Message-ID: CALnrrJRmFSdee1p8Km8-2cCucSVvk8kzfEMVNBmgyHVuhCusdg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, Oct 21, 2011 at 9:19 PM, Emi Lu <emilu(at)encs(dot)concordia(dot)ca> wrote:

> Thank you first.
>
> I believe that upate pg_class can only be done by superuser, right?
>

Yes,it's requires superuser privileges.

>
> Besides, if I need the whole schema's foreign keys to be disabled and then
> enabled later.
>
> Is there a simple command could do it? Similar to mysql's "set
> FOREIGN_KEY_CHECKS = false/true"?
>
>
No. The main goal for PG is to secure data integrity, and you can't switch
off this feature.

Disable the constraints:

alter table <tablename> disable trigger all;

You can use this command inside your transaction too, but don't forget to
reactivate the triggers because this change will become global after
the transaction ends!
--Raghu

> On 10/21/2011 11:12 AM, raghu ram wrote:
>
>>
>>
>> On Fri, Oct 21, 2011 at 8:33 PM, Emi Lu <emilu(at)encs(dot)concordia(dot)ca
>> <mailto:emilu(at)encs(dot)concordia(dot)**ca <emilu(at)encs(dot)concordia(dot)ca>>> wrote:
>>
>> Good morning,
>>
>>
>> Is there a way to temporally disabled foreign key constraints
>> something like:
>>
>> SET FOREIGN_KEY_CHECKS=0
>>
>> When population is done, will set FOREIGN_KEY_CHECKS=1
>>
>>
>> You can disable *triggers* on a table (which will disable all the FK
>> constraints, but not things like 'not nul' or 'unique').
>>
>> For Disable:
>>
>> update pg_class set reltriggers=0 where relname = 'TEST';
>>
>> For Enable:
>>
>> update pg_class set reltriggers = count(*) from pg_trigger where
>> pg_class.oid=tgrelid and relname='TEST';
>>
>> --Raghu
>>
>
>
> --
> Emi Lu, ENCS, Concordia University, Montreal H3G 1M8
> emilu(at)encs(dot)concordia(dot)ca +1 514 848-2424 x5884
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message raghu ram 2011-10-22 22:20:34 Re: archive_timeout runtime change
Previous Message Joe Abbate 2011-10-22 20:43:11 Re: copying few fields into an existing table