MySQL中触发器的使用

触发器

模板

sql 复制代码
-- BEFORE|AFTER表是在数据库事件发生之前或之后执行
-- INSERT|UPDATE|DELETE表是发生什么数据库事件
-- FOR EACH ROW表示为每一行trigger_body数据都执行该触发器
CREATE TRIGGER trigger_name
BEFORE|AFTER INSERT|UPDATE|DELETE
ON table_name FOR EACH ROW
BEGIN
	trigger_body;
END;

增删改查

sql 复制代码
#在已知数据库内,查询触发器
SHOW TRIGGERS;
SELECT * FROM information_schema.TRIGGERS WHERE TRIGGER_NAME = '触发器名';
#查询所有的触发器
SELECT * FROM information_schema.TRIGGERS(WHERE TRIGGER_SCHEMA = '数据库名');
#删除触发器
DROP TRIGGER IF EXISTS trigger_name;

示例

sql 复制代码
-- 每次新增tab1表的时候都往tab2表中初始化数据
-- tab2表中的tenantId是引用的tab1表中的,只需要用NEW.tenant_id引用即可
CREATE TRIGGER tab2_trigger
AFTER INSERT
ON tab1 FOR EACH ROW
BEGIN
	INSERT INTO tab2 (id, name, tenant_id) VALUES('asset_type', '资产类型',NEW.tenant_id);
	INSERT INTO tab2 (id, name, tenant_id) VALUES('dept_id', '所属部门', NEW.tenant_id);
END;
相关推荐
过期动态5 小时前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
一位代码5 小时前
mysql | 常见日期函数使用及格式转换方法
数据库·mysql
杰克尼6 小时前
mysql_day01
数据库·mysql
计算机学姐10 小时前
基于php的摄影网站系统
开发语言·vue.js·后端·mysql·php·phpstorm
计算机学姐10 小时前
基于php的旅游景点预约门票管理系统
开发语言·后端·mysql·php·phpstorm
czlczl2002092510 小时前
高并发下的 Token 存储策略: Redis 与 MySQL 的一致性
数据库·redis·mysql
石明亮(JT)10 小时前
MySQL8.0电商金融交易系统SQL实战
数据库·mysql
luoluoal11 小时前
基于python的反爬虫技术的研究(源码+文档)
开发语言·python·mysql
sc.溯琛11 小时前
MySQL 入门实验:环境搭建与基础操作全攻略
数据库·mysql