MySQL触发器如何创建与删除

86次阅读
没有评论

共计 1567 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章主要介绍“MySQL 触发器如何创建与删除”的相关知识,丸趣 TV 小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL 触发器如何创建与删除”文章能帮助大家解决问题。

1. 为什么需要触发器

有一些表是互相关联的,比如说商品表和库存表,我们对商品表的数据进行操作,那么对应的库存表还得发生变化,这样才可以保证数据的完整。如果我们是自己手动维护的话,比较麻烦。
这个时候我们可以使用触发器,创建一个触发器,让商品信息数据的插入操作自动触发库存数据的插入操作等,这样我们就不需要担心因为忘记添加库存数据而导致数据丢失了。

2. 触发器概述

MySQL 是从 5.0.2 版本开始支持触发器的

MySQL 的触发器和存储过程一样都是嵌入到 MySQL 服务器的一段程序

触发器是由某一个事件来触发某个操作,这些事件包括 insert,delete,update 事件

若定义了触发程序,那么数据库执行这些语句的时候,就相当于事件发生,会自动激发触发器执行相应的操作

如果对数据库中的表的数据进行插入等操作的时候,需要自动执行一些数据库逻辑的时候,我们可以用触发器来实现。

3. 触发器的创建 3.1 语法

触发器是作用在表上的,比如说我们希望表 A 新增一条记录的时候就触发 触发器的执行,而且还要选择触发器是在 insert 语句执行之前执行触发器还是之后。

for each row 表明,每执行一次事件 (insert,update 或 delete) 就会触发一次触发器

CREATE TRIGGER  触发器名称  
{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON  表名  
FOR EACH ROW  触发器执行的语句块;

说明:

表名:表示触发器监控的对象。

BEFORE|AFTER:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件之后触发。

INSERT|UPDATE|DELETE:表示触发的事件。

INSERT 表示插入记录时触发;

UPDATE 表示更新记录时触发;

DELETE 表示删除记录时触发。

触发器执行的语句块:可以是单条 SQL 语句,也可以是由 BEGIN…END 结构组成的复合语句块。

3.2 案例演示

先准备表

CREATE TABLE test_trigger (id INT PRIMARY KEY AUTO_INCREMENT,t_note VARCHAR(30));CREATE TABLE test_trigger_log (id INT PRIMARY KEY AUTO_INCREMENT,t_log VARCHAR(30));

要求: 创建触发器:创建名称为 before_insert 的触发器,向 test_trigger 数据表插入数据之前,向 test_trigger_log 数据表中插入 before_insert 的日志信息。

4. 查看触发器

查看触发器是查看数据库中已经存在的触发器的定义,状态和语法信息等

方式一: 查看当前数据库的所有触发器的定义

show triggers\G  注意,在 SQLyog 中,不能加上 \G

方式二:查看当前数据库中某一个触发器的定义

show create trigger  触发器名

方式三: 从系统库 information_schema 的 TRIGGERS 表中查询“salary_check_trigger”触发器的信息

SELECT * FROM information_schema.TRIGGERS;

5. 删除触发器

触发器也是数据库对象,触发器也是用 drop 语句来删除

drop trigger if exists  触发器名;

关于“MySQL 触发器如何创建与删除”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注丸趣 TV 行业资讯频道,丸趣 TV 小编每天都会为大家更新不同的知识点。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计1567字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)