MySQL-触发器

一、概述:

Ⅰ、触发器是由 事件来触发 某个操作,这些事件包括 INSERT 、 UPDATE 、 DELETE 事件。就是指

用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生

了,就会 自动 激发触发器执行相应的操作。

Ⅱ、当对数据表中的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时,可以使用触发器来

实现。

二、创建触发器

Ⅰ、语法

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

Ⅱ、相关说明

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

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

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

​ ·INSERT 表示插入记录时触发;

​ ·UPDATE 表示更新记录时触发;

​ ·DELETE 表示删除记录时触发;

Ⅲ、示例

sql 复制代码
#向test_trigger数据表插入数据之后,向test_trigger_log数据表中插入after_insert的日志信息。
DELIMITER //
CREATE TRIGGER before_insert
BEFORE INSERT ON test_trigger
FOR EACH ROW
BEGIN
INSERT INTO test_trigger_log (t_log)
VALUES('before_insert');
END //
DELIMITER ;

三、查看、删除触发器

Ⅰ、查看触发器

sql 复制代码
#方式1:查看当前数据库的所有触发器的定义
SHOW TRIGGERS;

#方式2:查看当前数据库中某个触发器的定义
SHOW CREATE TRIGGER 触发器名;

#方式3:从系统库information_schema的TRIGGERS表中查询"salary_check_trigger"触发器的信息。
SELECT * FROM information_schema.TRIGGERS;

Ⅱ、删除触发器

sql 复制代码
DROP TRIGGER IF EXISTS 触发器名称;

四、总结

Ⅰ、优点

​ ①触发器可以确保数据的完整性。

​ ②触发器可以帮助我们记录操作日志。

​ ③触发器还可以用在操作数据前,对数据进行合法性检查。

Ⅱ、弊端

​ ①可读性差:触发器存储在数据库中,并且由事件驱动,这就意味着触发器有可能 不受应用层的控制,维护难度大。

​ ②相关数据的变更,可能会导致触发器出错。

相关推荐
dengjiayue4 分钟前
golang 高性能的 MySQL 数据导出
开发语言·mysql·golang
SelectDB42 分钟前
SelectDB 实时分析性能突出,宝舵成本锐减与性能显著提升的双赢之旅
大数据·数据库·数据分析
V+zmm1013442 分钟前
电器维修系统小程序+论文源码调试讲解
java·数据库·微信小程序·小程序·毕业设计
PawSQL1 小时前
推理模型对SQL理解能力的评测:DeepSeek r1、GPT-4o、Kimi k1.5和Claude 3.7 Sonnet
java·数据库·人工智能·sql·sql优化·pawsql·deepseek
*星星之火*1 小时前
【GPT入门】第12课 FunctionCall 生成数据库sql代码
数据库·sql·gpt
熙曦Sakura1 小时前
【MySQL】数据类型
android·mysql·adb
陈卓4101 小时前
Redis-缓存穿透&击穿&雪崩
数据库·redis·缓存
泡泡Java1 小时前
Redis离线安装(内网,源码安装)
数据库·redis·缓存
想做富婆1 小时前
存储过程和自定义函数在银行信贷业务中的应用(oracle)
数据库·存储过程·银行贷款业务
珹洺1 小时前
数据库系统概论(三)数据库系统的三级模式结构
java·运维·服务器·数据库·oracle