赞
踩
项目中需要对触发器进行批量禁止、启用操作,方法如下。
/* 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 relhastriggers is true 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;
select fn_triggerall(true);
select fn_triggerall(false);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。