收藏 分享(赏)

第9章__触发器.ppt

上传人:mcady 文档编号:10201166 上传时间:2019-10-18 格式:PPT 页数:14 大小:56KB
下载 相关 举报
第9章__触发器.ppt_第1页
第1页 / 共14页
第9章__触发器.ppt_第2页
第2页 / 共14页
第9章__触发器.ppt_第3页
第3页 / 共14页
第9章__触发器.ppt_第4页
第4页 / 共14页
第9章__触发器.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、第9章 触发器,触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操作。MySQL从5.0.2版本开始支持触发器。在这一章中将讲解的内容包括: 触发器的含义和作用 如何创建触发器 如何查看触发器 如何删除触发器,9.1 创建触发器,触发器是由INSERT、UPDATE和DELETE等事件来触发某种特定操作。满足触发器的触发条件时,数据库系统就会执行触发器中定义的程序语句。这样做可以保证某些操作之间的一致性。例如,当学生表中增加了一个学生的信息时,学生的总数就必须同时改变。可以在这

2、里创建一个触发器,每次增加一个学生的记录,就执行一次计算学生总数的操作。这样就可以保证每次增加学生的记录后,学生总数是与记录数是一致的。触发器触发的执行语句可能只有一个,也可能有多个。本节将详细讲解创建触发器的方法。,9.1.1 创建只有一个执行语句的触发器,MySQL中,创建只有一个执行语句的触发器的基本形式如下: CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件 ON 表名 FOR EACH ROW 执行语句,9.1.2 创建有多个执行语句的触发器,MySQL中,触发器触发的执行语句可能有多个。创建有多个执行语句的触发器的基本形式如下: CREATE TRIG

3、GER 触发器名 BEFORE | AFTER 触发事件 ON 表名 FOR EACH ROW BEGIN 执行语句列表 END,9.2 查看触发器,查看触发器是指查看数据库中已存在的触发器的定义、状态和语法等信息。查看触发器的方法包括SHOW TRIGGERS语句和查询information_schema数据库下的triggers表等。本节将详细讲解查看触发器的方法。,9.2.1 SHOW TRIGGERS语句查看触发器信息,MySQL中,可以执行SHOW TRIGGERS语句来查看触发器的基本信息。其基本形式如下: SHOW TRIGGERS ;,9.2.2 在triggers表中查看触发

4、器信息,MySQL中,所有触发器的定义都存在information_schema数据库下的triggers表中。查询triggers表,可以查看到数据库中所有触发器的详细信息。查询的语句如下: SELECT * FROM information_schema. triggers ;,9.3 触发器的使用,MySQL中,触发器执行的顺序是BEFORE触发器、表操作(INSERT、UPDATE 和DELETE)、AFTER触发器。下面通过一个示例演示这三者的执行顺序。 【示例9-6】下面在department表上创建BEFORE INSERT和AFTER INSERT这两个触发器。在向depart

5、ment表中插入数据时,观察这两个触发器的触发顺序。创建触发器的代码如下: CREATE TRIGGER before_insert BEFORE INSERT ON department FOR EACH ROW INSERT INTO trigger_test VALUES(null, “ before_insert “); CREATE TRIGGER after_insert AFTER INSERT ON department FOR EACH ROW INSERT INTO trigger_test VALUES(null, “ after_insert “);,9.4 删除触发器

6、,删除触发器指删除数据库中已经存在的触发器。MySQL中使用DROP TRIGGER语句来删除触发器。其基本形式如下: DROP TRIGGER 触发器名 ;,9.5 本章实例,在本小节中将在product表上创建三个触发器。每次激活触发器后,都会更新operate表。 1创建product表和operate表 2创建product_bf_insert触发器 3创建product_af_update触发器 4创建product_af_del触发器 5对product表进行操作 6删除触发器,9.6 上机实践,题目要求: (1)9.5小节中的在product表上分别创建AFTER INSERT、

7、BEFORE UPDATE和BEFORE DELETE三个触发器,触发器的名称分别为product_af_insert、product_bf_update和product_bf_del。执行语句部分都是向operate表插入操作方法和操作时间。 (2)查看product_bf_del触发器的基本结构。 (3)分别执行INSERT、UPDATE和DELETE操作来触发这三个触发器。 (4)删除product_bf_update和product_bf_del这两个触发器。,9.7 常见问题及解答,1MySQL中创建多条执行语句的触发器总是遇到分号就结束创建,然后报错? MySQL中,创建多条执行语

8、句的触发器时,需要用到BEGINEND的形式。每个执行语句都必须是以分号结束。但是,这样就会出问题。因为,系统默认分号是SQL程序结束的标志,遇到分号整个程序就结束了。要解决这个问题,就需要DELIMITER语句来改变程序的结束符号。如 “DELIMITER ”即可。,9.8 小结,本章介绍了MySQL数据库的触发器的定义和作用、创建触发器、查看触发器、使用触发器、删除触发器等内容。创建触发器和使用触发器是本章的重点内容。读者在创建触发器后,一定要查看触发器的结构。使用触发器时,触发器执行的顺序是BEFORE触发器、表操作(INSERT、UPDATE 和DELETE)、AFTER触发器。创建触

9、发器是本章的难点。读者需要将本章的知识结合实际需要来设计触发器。下一章将介绍查询语句的使用。,9.9 本章习题,1各种触发器的触发顺序是什么? 2触发器执行的语句的限制条件是什么? 3在9.5小节上的product表上创建BEFORE INSERT和AFTER INSERT两种触发器。这两个触发器触发后都是更新test_trigger表。 这两个触发器创建成功后,执行如下操作: (1)查看两个触发器的基本结构。 (2)向product表中插入记录,插入语句如下所示: INSERT INTO product VALUES(10, ccc,治疗头痛, 北京ccc制药厂,北京市昌平区); (3)查看test_trigger表的记录,分析触发器的触发顺序。 (4)删除触发器test_bf_insert和test_af_insert。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报