暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB T 触发器trigger创建、修改、删除

原创 章芋文 2019-09-22
1948

创建一个新的触发器。

注意事项

“OF column_name”列数据类型不能为LOB。

触发器内部不能出现DDL和DCL操作,普通用户不可以创建系统用户对象。

触发事件为数据**(BEFORE | AFTER INSERT)时,行触发器内部不能出现向被触发表中**数据的操作;触发事件为数据更改(BEFORE | AFTER UPDATE)时,行触发器内部不能出现更改被触发表中数据的操作;触发事件为数据删除(BEFORE | AFTER DELETE)时,行触发器内部不能出现删除被触发表中数据的操作。

在一个表上最多可创建8个触发器。

不支持在本地临时表上创建触发器。

普通用户的触发器不允许基于SYS用户表进行创建。

语法格式

CREATE [ OR REPLACE ] TRIGGER [ schema_name. ]trigger_name { BEFORE | AFTER } { DELETE | INSERT | UPDATE  [ OF column_name[,...] ] } [ OR ... ] ON table_name[FOR EACH ROW] 

[ param_list ]

BEGIN  

statements;

END;

参数说明

OR REPLACE

如果触发器已经存在,替换原有的触发器。

schema_name

要创建的触发器所有者。

trigger_name

要创建的触发器的名称。

{ BEFORE | AFTER }

指定触发时间。BEFORE表示在数据库动作之前触发器执行;AFTER表示在数据库动作之后触发器执行。

{ DELETE | INSERT | UPDATE [ OF column_name[,...] ] } [ OR ... ]

触发事件,指明哪些数据库动作会触发此触发器。

DELETE表示数据库删除会触发此触发器。

INSERT表示数据库**会触发此触发器。

UPDATE表示数据库修改会触发此触发器。

MERGE表示从其他数据源中更新或**时,会触发此触发器。

[ OR ... ]表示指定的多个触发事件之间用OR连接,例如,INSERT OR DELETE表示触发事件是**操作和删除操作。

table_name

数据库触发器所在的表。

[FOR EACH ROW]

使用FOR EACH ROW的触发器为行级触发器;不使用FOR EACH ROW的触发器为语句级触发器。

param_list

声明参数列表。声明语法请参见声明语法。

statements

触发器语句块。不允许为空,为空会报错。可以使用基本语句、动态语句、控制语句、异常语句或其他语句。基本语句详情请参见基本语句,动态语句详情请参见动态语句,控制语句详情请参见控制语句,其他语句详情请参见其他语句,自定义函数详情请参见自定义函数,自定义存储过程请参见创建存储过程。



修改触发器。

语法格式

ALTER TRIGGER [ schema_name. ]trigger_name { ENABLE | DISABLE };

参数说明

schema_name

要修改的触发器所有者。

trigger_name

要修改的触发器名称。

ENABLE

触发器生效。

DISABLE

触发器不生效。

示例

--修改触发器生效。
ALTER TRIGGER trigger_name ENABLE;


删除触发器。

注意事项

删除确定存在的触发器时,可不使用关键字IF EXISTS。删除不确定是否存在的触发器,建议使用“DROP TRIGGER IF EXISTS trigger_name;”,避免因要删除的触发器不存在而返回错误,普通用户不可以删除系统用户对象。

语法格式

DROP TRIGGER [ IF EXISTS ] [ schema_name. ]trigger_name;

参数说明

IF EXISTS

使用IF EXIST时,如果要删除的触发器不存在,删除操作能够执行成功,不会报错。

schema_name

要删除的触发器所有者。

trigger_name

要删除的触发器的名称。

示例

--删除触发器。
DROP TRIGGER IF EXISTS TRIG_BEFORE_INSERT1;


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论