DROP TRIGGER

DROP TRIGGER — 移除一个触发器

Synopsis

下面的语法移除使用函数名定义的触发器:

DROP TRIGGER [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]

下面的语法只能在oracle模式下使用,用于删除使用代码块定义的触发器:
 
 DROP TRIGGER [schema .] name

描述

DROP TRIGGER移除一个现有的触发器定义。 要执行这个命令,当前用户必须是触发器基表的拥有者。

参数

IF EXISTS

如果该触发器不存在则不要抛出一个错误,而是发出一个提示。

schema

包含触发器的schema. 默认是当前schema。

name

要移除的触发器的名称。

table_name

定义了该触发器的表的名称(可以是模式限定的)。

CASCADE

自动删除依赖于该触发器的对象,然后删除所有 依赖于那些对象的对象(见Section 6.14)。

RESTRICT

如果有任何对象依赖于该触发器,则拒绝删除它。这是默认值。

示例

创建和销毁表films上的触发器 if_dist_exists

CREATE TRIGGER if_dist_exists after INSERT ON films FOR EACH ROW
EXECUTE FUNCTION if_dist_exists_func();
DROP TRIGGER if_dist_exists ON films;

创建和销毁表 films上的触发器if_dist_exists_oracle

CREATE TRIGGER if_dist_exists_oracle after INSERT ON films FOR EACH ROW
begin
dbms_output.put_line('hello world!');
end;
/
DROP TRIGGER if_dist_exists_oracle;

兼容性

LightDB中的 DROP TRIGGER语句与 SQL 标准不 兼容。在 SQL 标准中,不同表上也不能有同名的触发器,因此其 命令是简单的DROP TRIGGER name.

另见

CREATE TRIGGER