11、触发器

触发器:由“触发事件”来执行,(区别于存储过程的调用或执行是由用户或应用程序来进行的)。能够引起触发器运行的操作就被称作“触发事件”,如执行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 ROWWHEN 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 “原值标识符”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值