概述
触发器:由“触发事件”来执行,(区别于存储过程的调用或执行是由用户或应用程序来进行的)。能够引起触发器运行的操作就被称作“触发事件”,如执行DML语句(insert 、update 、delete对表或视图执行数据处理操作),执行DDL语句(create、alter、drop 语句在数据库中创建、修改、删除模式对象),引发数据库系统事件(如系统启动或退出、产生的异常错误等)引发用户事件(如登录或退出数据库操作)都可以引起触发事件的运行。
格式:
CREATE OR REPLACE TRIGGER 触发器名称
【before/after/instead of】 触发器事件 --如 insert update delete create drop alter 等
ON 【table_name/view_name/user_name/db_name】--如操作的数据表、视图、用户模式、数据库等对他们的某些操作引起触发器的运行。
【FOR EACH ROW】WHEN tri_condition】 --指定为行级触发器,即每一行数据操作都会引起触发器运行,如果未指定则为语句级触发器,触发器只执行一次。--WHEN 为关键字,tri_condition表示触发条件表达式,只有当表达式为TRUE时才会自动执行触发器。
BEGIN
pl/sql语句,触发主题
END 触发器名称。
触发器分为
行级触发器:当DML语句对每一行数据进行操作都会引起触发事件的运行。
语句级触发器:无论DML语句影响多少行数据,都只会执行一次触发器。
替换触发器:定义在视图上,而不是定义在表上,用来替换事件的语句。
用户事件触发器:指与DDL操作或用户登录、退出数据库等事件相关的触发器。如用户登录到数据库或使用alter语句修改表结构等事件的触发器。
系统事件触发器:指在oracle数据库系统的事件中进行触发的触发器,如oracle实例的启动与关闭。
行级触发器:
create sequence seq_id;创建系列seq_id。
seq_id.nextval 属性获取一系列有序的数值。
:new.column_name “新值标识符”
:old.column_name “原值标识符”
最后
以上就是从容发卡为你收集整理的11、触发器的全部内容,希望文章能够帮你解决11、触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复