6.3-数据库触发器.ppt
《6.3-数据库触发器.ppt》由会员分享,可在线阅读,更多相关《6.3-数据库触发器.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、6.4 数据库触发器1 数据库原理及应用数据库系统原理与开发电子科技大学-陈安龙了解触发器的基本概念掌握postgreSQL触发器创建、修改、删除的方法理解触发器的执行过程【本节的主要内容】2 数据库原理及应用数据库系统原理与开发电子科技大学-陈安龙一、触一、触发发器的基本概念器的基本概念 触发器触发器是特殊类型的存储过程,主要由操作事件是特殊类型的存储过程,主要由操作事件(INSERT、UPDATE、DELETE)触发而被自动执行。触发而被自动执行。触发器可以实现比约束更复杂的数据完整性触发器可以实现比约束更复杂的数据完整性,经常用于经常用于加加强强数据的完数据的完整性整性约约束和束和业务规
2、则业务规则。触发器本身是一个特殊的触发器本身是一个特殊的事事务单务单位位。3 数据库原理及应用数据库系统原理与开发电子科技大学-陈安龙触触发发器的特点器的特点u 与表相关联与表相关联:必须定义在表或视图上。:必须定义在表或视图上。u 自动触发自动触发:由执行:由执行INSERT、DELETE、UPDATE操作时触发操作时触发u 不能直接调用,也不能传递或接受参数不能直接调用,也不能传递或接受参数u 是事务的一部分是事务的一部分:触发器和触发语句作为可在触:触发器和触发语句作为可在触 发器内回滚的单个事务。发器内回滚的单个事务。4 数据库原理及应用数据库系统原理与开发电子科技大学-陈安龙触触发发
3、器的分器的分类类u 按触发的语句分为:按触发的语句分为:INSERT触发器、触发器、DELETE触发器、触发器、UPDATE触发器触发器 用户动作用户动作 insert delete update应用应用表表insert triggerdelete triggerupdate trigger数据库数据库5 数据库原理及应用数据库系统原理与开发电子科技大学-陈安龙触触发发器器的分的分类类(续续)触发器执行的次数可分:触发器执行的次数可分:(1)语句级触发器:)语句级触发器:由关键字由关键字FOR EACH STATEMENT声明,在触发器作用声明,在触发器作用的表上执行一条的表上执行一条SQL语
4、句时,该触发器语句时,该触发器只执行一次只执行一次,即使是修改了零行数据的,即使是修改了零行数据的SQL,也会导致相应的触发器执行。如果都没有被指定,也会导致相应的触发器执行。如果都没有被指定,FOR EACH STATEMENT会会是默认值是默认值。(2)行级触发器:)行级触发器:由关键字由关键字FOR EACH ROW标记的触发器,当触发器作用的标记的触发器,当触发器作用的表的数据发生变化时,表的数据发生变化时,每变化一行就会执行一次触发器每变化一行就会执行一次触发器。例如,假设学生成绩表有。例如,假设学生成绩表有DELETE触发器,当在该表执行触发器,当在该表执行DELETE语句删除记录
5、时,如果删除了语句删除记录时,如果删除了20条记录,条记录,则将导致则将导致 DELETE触发器被执行触发器被执行20 次。次。6 数据库原理及应用数据库系统原理与开发电子科技大学-陈安龙触触发发器器的分的分类类(续续)按触发的时间分为三类:按触发的时间分为三类:(1)BEFORE触发器:触发器:在触发事件之前执行触发器。在触发事件之前执行触发器。(2)AFTER触发器:触发器:在触发事件之后执行触发器。在触发事件之后执行触发器。(3)INSTEAD OF触发器触发器:当触发事件发生后,执行触发器中指定的函:当触发事件发生后,执行触发器中指定的函数,而不是执行产生触发事件的数,而不是执行产生触
6、发事件的SQL 语句,从而替代产生触发事件的语句,从而替代产生触发事件的SQL操作。在表或视图上,对于操作。在表或视图上,对于INSERT、UPDATE 或或 DELETE 三种三种触发事件,每种最多可以定义一个触发事件,每种最多可以定义一个INSTEAD OF 触发器触发器7 数据库原理及应用数据库系统原理与开发电子科技大学-陈安龙INSTEAD OF 触触发发器器8 数据库原理及应用数据库系统原理与开发电子科技大学-陈安龙触触发发器相关的特殊器相关的特殊变变量量(1)NEW 数据类型是数据类型是RECORD。对于行级触发器,它存有。对于行级触发器,它存有INSERT或或UPDATE操作产生
7、的操作产生的新的数据行新的数据行。对于语句级触发器,它的值是。对于语句级触发器,它的值是NULL。(2)OLD 数据类型是数据类型是RECORD。对于行级触发器,它存有。对于行级触发器,它存有被被UPDATE或或DELETE操作修改或删除的操作修改或删除的旧的数据行旧的数据行。对于语句级触发器,它的值是。对于语句级触发器,它的值是NULL。(3)TG_OP 数据类型是数据类型是text;是值为;是值为INSERT、UPDATE、DELETE 的一个字符的一个字符串,它说明触发器是为哪个操作引发。串,它说明触发器是为哪个操作引发。9 数据库原理及应用数据库系统原理与开发电子科技大学-陈安龙二二、
8、PostgreSQL创创建触建触发发器的基本器的基本语语法法CREATE TRIGGER 触触发发器名器名 BEFORE|AFTER|INSTEAD OF ON 表名表名 FOR EACH ROW|STATEMENT EXECUTE PROCEDURE 存存储过储过程名程名(参数列表参数列表)(1)指明所定指明所定义义的触的触发发器名器名 (2)BEFORE|AFTER|INSTEAD OF 指明触指明触发发器被触器被触发发的的时间时间(3)ON 表名表名 指明触指明触发发器所依附的表器所依附的表(4)FOR EACH ROW|STATEMENT 指明触指明触发发器被触器被触发发的次数的次数(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 6.3 数据库 触发器
限制150内