Search Postgresql Archives

Re: Temporally disabled foreign key constraint check?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Fri, Oct 21, 2011 at 9:19 PM, Emi Lu <emilu@xxxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxx
<mailto:emilu@encs.concordia.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@xxxxxxxxxxxxxxxxx        +1 514 848-2424 x5884


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux