《MySQL数据库应用与管理(第3版)》 课件 鲁大林 第9章 触发器.pptx

《MySQL数据库应用与管理(第3版)》 课件 鲁大林 第9章 触发器.pptx

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

触发器触发器概述

触发器概述触发器是一种特殊的存储过程,且不同于一般的存储过程。触发器主要是通过事件进行触发而被执行,而一般的存储过程则是通过存储过程名称被直接调用。触发器是一个功能强大的工具,与表紧密连接,可以看作是表结构定义的一部分。触发器基于一个表创建,但可以操作多个表。它可以在向数据表中插入、修改或删除数据时进行检查,以保证数据完整性和一致性。当用户修改(INSERT、UPDATE或DELETE)指定表中的数据时,该表中的相应的触发器就会自动执行。

谢谢

触发器创建触发器

本节内容1.使用CREATETRIGGER语句创建触发器2.触发器中的NEW和OLD关键字3.创建插入触发器4.创建更新触发器5.创建删除触发器

创建触发器创建触发器使用CREATETRIGGER语句,其语法格式如下: CREATETRIGGER触发器名 BEFORE|AFTER INSERT|UPDATE|DELETE ON表FOREACHROW 触发器过程体1.使用CREATETRIGGER语句创建触发器

创建触发器说明:BEFORE|AFTER:触发器触发的时机。INSERT|UPDATE|DELETE:触发器触发的事件。FOREACHROW:对于触发事件影响的每一行,都要激活触发器动作。触发器过程体:事件发生,触发器需要执行的任务。同一张表、同一触发事件、同一触发时机只能创建一个触发器。触发器执行的顺序BEFORE触发器、表操作(INSERT、UPDATE、DELETE)和AFTER触发器。1.使用CREATETRIGGER语句创建触发器

创建触发器MySQL的触发器无任何输入和输出参数,其内部使用的参数就是新旧两条记录NEW和OLD的字段,用来完成数据表之间的触发操作,来保证数据库的一致性、完整性。NEW表示的新插入的数据,OLD表示的是原来的数据:当使用INSERT语句的时候,插入的那一条数据相对于插入数据后的表来说就是NEW。当使用DELETE语句的时候,删除的那一条数据相对于删除数据后的表来说就是OLD。当使用UPDATE语句的时候,修改前的那一条数据相对于修改数据后的表来说就是OLD;修改后的那一条数据相对于修改数据后的表来说就是NEW。2.触发器中的NEW和OLD关键字

创建触发器在触发器BEFORE中可以在对NEW进行赋值和取值;而在AFTER中只能对NEW进行取值,不能赋值。访问触发器中NEW和OLD的语法格式如下: NEW.column_name OLD.column_name2.触发器中的NEW和OLD关键字

创建触发器创建插入触发器使用INSERT关键字,即当指定的数据表发生数据插入操作时,自动触发并执行指定的任务;可设置在插入前触发、还是在插入后触发,分别使用BEFORE或者AFTER关键字。3.创建插入触发器

操作案例知识点概述示例9-1运行结果如下:创建一个由INSERT触发的前触发器tr_insertStudent,一旦在学生表(student)中插入一行数据之前,检查性别是否为“男”或者“女”,如果不是,则设置为“男”。

操作案例知识点概述示例9-2运行结果如下:向学生表(student)中插入一条学生记录,验证示例9-1中的触发器tr_insertStudent。

创建触发器创建更新触发器使用UPDATE关键字,即当指定的数据表发生数据更新操作时,自动触发并执行指定的任务;可设置在更新前触发、还是在更新后触发,分别使用BEFORE或者AFTER关键字。4.创建更新触发器

操作案例知识点概述示例9-3运行结果如下:创建一个由UPDATE触发的后触发器tr_updateStuScore,一旦在成绩表(score)中修改了某一学生的某一课程的成绩之后,把修改时间、学号、课程编号、修改前成绩、修改后成绩保存到数据表trigger_log中。

操作案例知识点概述示例9-4运行结果如下:修改成绩表(score)中的一条学生的课程成绩,验证示例9-3中的触发器tr_updateStuScore。

创建触发器创建删除触发器使用DELETE关键字,即当指定的数据表发生数据删除操作时,自动触发并执行指定的任务;可设置在删除前触发、还是在删除后触发,分别使用BEFORE或者AFTER关键字。5.创建删除触发器

操作案例知识点概述示例9-5运行结果如下:创建一个由DELETE触发的前触发器tr_deleteStudent,一旦在学生表(student)中删除一行数据之前,删除该学生的所有成绩记

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档