KingbaseES启用和禁用触发器

   触发器相比约束更加灵活,可以实现比外约束更为复杂的检查和操作,更精细和更强大的数据处理能力。
   数据库触发器可以与表、模式或数据库相关联, 它们可以在以下情况被隐式触发:

• 对关联的表执行 DML 语句 (INSERT、UPDATE、DELETE)
• 某些 DDL 语句 (例如:ALTER、CREATE、DROP) 在数据库或模式中的对象上执行
创建触发器请使用 CREATE TRIGGER 语句, 可以定义触发器函数是要在事件之前、之后被调用、还是取代该事件。下面的示例在表 class 上创建了一个 check_update_trigger 触发器。在执行任何指定 UPDATE 语句之前触发该触发器,最终会执行触发器函数 check_account_update。

CREATE TRIGGER class_update_trigger
BEFORE
UPDATE ON class
FOR EACH ROW
EXECUTE FUNCTION check_class_update();

之后可以通过执行 DROP TRIGGER 语句从数据库中删除触发器。
要使用 ALTER TABLE 语句启用或禁用触发器,您必须是这个表的拥有者或者对该表具有 ALTER 权限。如果使用 ALTER TRIGGER 语句启用或禁用单个触发器,您必须拥有该触发器。
启用触发器
您可以使用带有 ENABLE 选项的 ALTER TRIGGER 语句启用禁用状态的触发器。
要在 class 表中启用名为 class_trigger 的触发器 (禁用状态),输入以下语句:

ALTER TRIGGER class_trigger ENABLE;

上述用于启动特定的触发器,如果要启用特定表的所有触发器,请使用带有 ENABLE ALL TRIGGERS 选项的ALTER TABLE 语句。如下示例,启用 class 表定义的所有触发器,则可以输入以下语句:

ALTER TABLE class
ENABLE TRIGGERS ALL;

禁用触发器
可以使用带有 DISABLE 选项的 ALTER TRIGGER 语句禁用触发器。
如果满足以下条件之一,请考虑暂时禁用触发器:
• 触发器引用的对象不可用。
• 您必须执行大型数据加载,并希望它在不触发触发器的情况下快速进行。
• 您正在将数据加载到触发器应用的表中。
要禁用 class 表上的 class_trigger 触发器,输入以下语句:

ALTER TRIGGER class_trigger DISABLE;

可以使用带有 DISABLE ALL TRIGGERS 选项的 ALTER TABLE 语句同时禁用与表关联的所有触发器。如下示例,禁用 class 表中定义的所有触发器,可以输入以下语句:

ALTER TABLE class
DISABLE ALL TRIGGERS;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值