首页 > 经验记录 > 数据库 > PL/SQL 触发器

PL/SQL 触发器

触发器是当特定事件出现时自动执行的存储过程
特定事件可以是执行更新的DML语句和DDL语句
触发器不能被显式调用
触发器的功能:
自动生成数据
自定义复杂的安全权限
提供审计和日志记录
启用复杂的业务逻辑

 

创建触发器的语法:

CREATE [OR REPLACE] TRIGGER trigger_name

AFTER | BEFORE | INSTEAD OF

[INSERT] [[OR] UPDATE [OF column_list]]

[[OR] DELETE]

ON table_or_view_name

[REFERENCING {OLD [AS] old / NEW [AS] new}]

[FOR EACH ROW]

[WHEN ( condition ) ]

pl/sql_block;

 

还有:new or :old这俩参数

分别代表:执行语句后的参数(new)、执行语句前的参数(old)


触发器语法解释:

create or replace trigger 触发器名字
before or after –触发时间
insert or update or delete –触发事件
on table_or_view_name –触发对象
for each row –触发频率
when condition –触发条件
PL/SQL;

 

触发事件:引起触发器被触发的事件。例如:DML语句(insert,update,delete)对表或试图执行操作
触发时间:before,after
触发操作:触发器意图
触发对象:表、视图、模式、数据库
触发条件:由when子句指定
触发频率:说明触发器定义的动作被执行的次数

 

注意事项:
1、触发器不接受任何参数
2、一个表上最多可有12个触发器,但同一事件,同一类型的触发器只能有一个,并各触发器之间不能有矛盾
3、触发器最大为32KB,如果有需要,可有先建立过程,然后调用
4、在触发器主体中不能使用事务控制语句
5、在触发器主体中不能申明任何的Long和Blob变量

 

代码示例:

 

 

 


EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00