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;
相关推荐
剩下了什么7 小时前
MySQL JSON_SET() 函数
数据库·mysql·json
java搬砖工-苤-初心不变7 小时前
MySQL 主从复制配置完全指南:从原理到实践
数据库·mysql
WangYaolove13149 小时前
基于python的在线水果销售系统(源码+文档)
python·mysql·django·毕业设计·源码
霖霖总总10 小时前
[小技巧66]当自增主键耗尽:MySQL 主键溢出问题深度解析与雪花算法替代方案
mysql·算法
海奥华212 小时前
mysql索引
数据库·mysql
javachen__13 小时前
mysql新老项目版本选择
数据库·mysql
Dxy123931021613 小时前
MySQL如何高效查询表数据量:从基础到进阶的优化指南
数据库·mysql
Dying.Light13 小时前
MySQL相关问题
数据库·mysql
Re.不晚14 小时前
MySQL进阶之战——索引、事务与锁、高可用架构的三重奏
数据库·mysql·架构
chian-ocean17 小时前
CANN 生态进阶:利用 `profiling-tools` 优化模型性能
数据库·mysql