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