第十一章 触发器和事件

1.触发器(trigger):

是一个被指定关联到表的数据库对象,与表的关系密切,它不需要用户调用,而是在一个表的特定事件出现时将会被激活,此时某些MySQL语句会自动执行。

2.触发器的创建、删除和使用

(1)创建: delimiter

CREATE TRIGGER名称时间(before/after)事件(insert/update/delete)

ON 表名 FOR EACH ROW begin

触发体语句; end //

delimiter ;

注意:在触发器的创建中,每个表每个事件每次只允许一个触发器,所以每条INSERT,UPDATEDELETE的前或后可创建一个触发器,每个表最多可创建6个触发器

(2)验证使用::

a.INSERT触发器:在INSERT语句执行之前或之后执行。

(a)INSERT触发器的触发体内可引用一个名为NEW的虚拟表来访问被插入的行。(b)在BEFORE INSERT触发器中,NEW中的值可以被更新,但after后不能更新。

b.UPDATE触发器:在UPDATE语句执行之前或之后执行。

(a)UPDATE触发器的触发体内可引用一个名为OLD的虚拟表来访问更新以前的值,

也可引用一个名为NEW的虚拟表来访问更新以后的值。

(b)在BEFORE UPDATE触发器中,NEW中的值可能已被更新,但after后不能更新。(c)OLD中的值不能被更新。

C.DELETE触发器:在DELETE语句执行之前或之后执行。

(a)DELETE触发器的触发体内可引用一个名为OLD的虚拟表来访问被删除的行。(b)OLD中的值不能被更新。

(3)删除:DROPTRIGGER 名称

3.补充说明:

(1)after是先完成数据的增删改,再触发,对new数据不能增删改(2)before是先完成触发,再增删改,对new数据可以增删改;(3)after和before都不能对old数据增删改。

4.事件(Event):

是在指定时刻才被执行的过程式数据库对象

(1)通过MySQL中一个很有特色的功能模块一事件调度器(Event Scheduler)进行监视,并确定其是否需要被调用。(2)事件调度器可以精确到每秒钟执行一个任务,比操作系统的计划任务更具实时优势。

(3)事件和触发器相似,都是在某些事情发生时启动,由于它们相似,所以事件又称为临时触发器(Temporal Trigger)(4)区别:触发器是基于某个表所产生的事件触发的,而事件是基于特定的时间周期来触发的。(5)使用事件调度器之前,必须确保开启事件调度器。

5.事件的创建、修改和删除

(1)创建: delimiter //

create event 名称

on schedule时间(at/every) do

begin

事件语句;

end //

delimiter ;

(2)修改:alter event 名称(3)删除:drop event 名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值