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 小时前
开发避坑指南(29):微信昵称特殊字符存储异常修复方案
java·mysql
瓜酷月..7 小时前
MySQL的高可用+MHA
数据库·mysql
苹果醋311 小时前
Java并发编程-Java内存模型(JMM)
java·运维·spring boot·mysql·nginx
翔云12345612 小时前
Python 中 SQLAlchemy 和 MySQLdb 的关系
数据库·python·mysql
叁沐17 小时前
MySQL 27 主库出问题了,从库怎么办?
mysql
源图客1 天前
Spark读取MySQL数据库表
数据库·mysql·spark
xiucai_cs1 天前
MySQL深分页慢问题及性能优化
数据库·mysql·性能优化·深分页
当牛作馬1 天前
ES常用查询命令
数据库·mysql·elasticsearch
hzp6661 天前
阿里云的centos8 服务器安装MySQL 8.0
mysql·阿里云·centos8
码luffyliu2 天前
MySQL:MVCC机制及其在Java秋招中的高频考点
java·数据库·mysql·事务·并发·mvcc