当前位置:网站首页>MySQL触发器如何创建与删除
MySQL触发器如何创建与删除
2022-06-29 17:16:00 【亿速云】
MySQL触发器如何创建与删除
这篇文章主要介绍“MySQL触发器如何创建与删除”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“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触发器如何创建与删除”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
边栏推荐
- Possible reasons for not triggering onreachbutton
- 6.25AtCoderABC257E - Addition and Multiplication 2题解
- C comparison of the performance of dapper efcore sqlsugar FreeSQL hisql sqlserver, an ORM framework at home and abroad
- 外部自动(PLC启动机器人)
- Gradle下载慢或无法下载
- Étalonnage de la caméra monoculaire et de la caméra binoculaire à l'aide de l'outil d'étalonnage kalibr
- 广发易淘金和东方财富哪个更好,更安全一些
- 0基础自学STM32(野火)——使用寄存器点亮LED——GPIO功能框图讲解
- Sectigo ov pan domain name certificate is 1590 yuan a year easy to use
- 【R语言数据科学】:文本挖掘(以特朗普推文数据为例)
猜你喜欢

NVIDIA安装最新显卡驱动

【现代信号处理第六次作业】

mysql数据库扫盲,你真的知道什么是数据库嘛

Étalonnage de la caméra monoculaire et de la caméra binoculaire à l'aide de l'outil d'étalonnage kalibr

在线文本数字识别列表求和工具

适合中小企业的项目管理系统有哪些?

函数计算异步任务能力介绍 - 任务触发去重

Redis principle - sorted set (Zset)

Leetcode 984. 不含 AAA 或 BBB 的字符串(网友思路)

使用kalibr标定工具进行单目相机和双目相机的标定
随机推荐
High landing pressure of "authorization and consent"? Privacy computing provides a possible compliance "technical solution"
Interrupt怎么用
力扣解法汇总535-TinyURL 的加密与解密
6.25atcoderabc257e - addition and multiplication 2
Flutter technology and Practice (1)
最高81.98%!超百所“双一流”高校本科深造率公布
New feature of C11 - Auto and decltype type type indicators
Gradle download slow or unable to download
深度剖析monai(一) Data和Transforms部分
Summary of problems during xampp Apache installation
如何创建虚拟形象
ICML 2022 | transferable imitation learning method based on decoupling gradient optimization
Go语言多方式并发实现龟兔赛跑
Which is better and safer, GF e-gold or Dongfang fortune
Calibration of binocular camera based on OpenCV
Collaborative development of epidemic home outsourcing project 𞓜 community essay solicitation
卷妹带你学jdbc—2天冲刺Day1
首批!腾讯云通过中国信通院政务协同平台解决方案能力评估
How to use interrupt
What are the Commonwealth countries