From: | "Teemu Juntunen" <teemu(dot)juntunen(at)e-ngine(dot)fi> |
---|---|
To: | "PostgreSQL" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: ENABLE / DISABLE ALL TRIGGERS IN DATABASE |
Date: | 2008-08-27 09:21:12 |
Message-ID: | 9CEBD523D1CD4916AE46EC487323B524@eng02 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I made the function myself. Here is it, if anyone else has a need for this.
Teemu
/* Enable/disable all the triggers in database */
CREATE OR REPLACE FUNCTION fn_triggerall(DoEnable boolean) RETURNS integer AS
$BODY$
DECLARE
mytables RECORD;
BEGIN
FOR mytables IN SELECT relname FROM pg_class WHERE reltriggers > 0 AND NOT relname LIKE 'pg_%'
LOOP
IF DoEnable THEN
EXECUTE 'ALTER TABLE ' || mytables.relname || ' ENABLE TRIGGER ALL';
ELSE
EXECUTE 'ALTER TABLE ' || mytables.relname || ' DISABLE TRIGGER ALL';
END IF;
END LOOP;
RETURN 1;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;
ALTER FUNCTION fn_triggerall(DoEnable boolean) OWNER TO postgres;
COMMENT ON FUNCTION fn_triggerall(DoEnable boolean) IS 'Enable/disable all the triggers in database';
----- Original Message -----
From: Teemu Juntunen
To: PostgreSQL
Sent: Wednesday, August 27, 2008 11:24 AM
Subject: [GENERAL] ENABLE / DISABLE ALL TRIGGERS IN DATABASE
Hi,
I think this has been asked before, but I can't find the answer from arcive nor google. How to disable/enable all the riggers in a database? I have problem with disabled triggers after database restore. If there is no simple way, could this be made in a function where you find the table names and construct the needed commands in strings. If so, how to get all the tablenames from database?
Best regards and thanks!
Teemu Juntunen
From | Date | Subject | |
---|---|---|---|
Next Message | Terry Lee Tucker | 2008-08-27 09:36:44 | Re: ENABLE / DISABLE ALL TRIGGERS IN DATABASE |
Previous Message | Pavel Stehule | 2008-08-27 08:42:54 | Re: update and group by/aggregate |