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;
相关推荐
不会就选b7 小时前
MySQL之视图
数据库·mysql
kkk哥12 小时前
weixin121作品集展示微信小程序
java·mysql·微信小程序·ssm·b/s架构·作品集展示微信小程序
We Just Keep growing12 小时前
【MySQL进阶篇】—— 视图、存储过程、存储函数、触发器
数据库·mysql
梦想的颜色13 小时前
MySQL 数据存储结构与查询执行生命周期深度解析
运维·数据结构·数据库·mysql·线程·优化
神龙斗士24013 小时前
增删改查操作
数据库·mysql
就叫_这个吧15 小时前
Java+MySQL+Mybatis+Junit4实现学生信息管理系统
java·mysql·mybatis
暴力求解15 小时前
MySQL---表的操作
数据库·mysql
可乐ea15 小时前
【知识获取与分享社区项目 | 项目日记第 19 天】基于 Elasticsearch 实现关键词检索与业务权重排序
java·大数据·spring boot·mysql·elasticsearch·搜索引擎·全文检索
Database_Cool_15 小时前
从 MySQL 迁移到阿里云 AnalyticDB MySQL:零改造百倍加速实战教程
数据库·mysql·阿里云
流星白龙17 小时前
【MySQL高阶】21.撤销表空间,撤销日志
android·mysql·adb