MySQL数据库教程之十四:MySQL触发器

MySQL数据库教程之十四:MySQL触发器

准备工作:

先启动Navicat for MySQL,并打开前期建立的数据库和表

查看每个表的结构:

一、触发器概念

       触发器(trigger):监视某种情况,并触发某种操作,它是提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,例如当对一个表进行操作( insert,delete, update)时就会激活它执行。
        触发器经常用于加强数据的完整性约束和业务规则等。 触发器创建语法四要素:
        1.监视地点(table)
        2.监视事件(insert/update/delete) 
        3.触发时间(after/before) 
        4.触发事件(insert/update/delete)

语法:

二、触发器类型:

触发器类型

激活触发器的语句

insert型触发器

insert, load data, replace

update型触发器

update

delete型触发器

delete, replace

三、NEW与OLD的使用:

触发器类型

NEW与OLD的使用

insert型触发器

NEW表示将要或已经新增的数据

update型触发器

OLD用来表示将要或已被删除的语句,NEW表示将要或已经修改的数据

delete型触发器

OLD用来表示将要或已被删除的语句

四、触发器实例

1、准备工作:先建两个表,商品表Goods和商品日志表Goods_log

商品表Goods包含:id(商品编号), name(商品名),price(价格)

日志表包含:op_id (操作编号),op_name(操作名称),op_time(操作时间)

商品结构:

日志表:

表结构:

2、定义一个insert触发器

在商品表中插入一条语句,然后查询日志表中的情况:

查看日志表:

同学们试着在商品表插入3条记录,然后查看日志表:

3、定义一个update触发器

然后更新一条记录:

查看日志表:

4、定义一个delete触发器

然后在商品表中删除一条记录

查看日志表:

5、查看触发器

6、删除触发器

再查看触发器

7、触发器模拟外键级联操作

例1:建立一个触发器,具有以下功能:删除student(学生表)中某一条记录,则自动删除score(成绩表)相对应学生的成绩

其触发器含义:删除score表中的记录,首先删除student表中与之对应的信息

查看studenet 与score表中学号172021101同学的信息。

现在删除student表中此学生的记录,然后查看score 表的变化。

查看score表的情况

成功!

原创文章 64 获赞 14 访问量 3万+

猜你喜欢

转载自blog.csdn.net/fjqlldg/article/details/105605750