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;
相关推荐
拾贰_C1 小时前
【Ubuntu | 公共工作站 | mysql 】 MySQL残留物残留数据
linux·mysql·ubuntu
知识汲取者2 小时前
每日一篇高频面试题系列之【MySQL 锁】
数据库·mysql
lolo大魔王3 小时前
Go 后端实战|Gin + GORM V2 + MySQL 企业级 API 项目开发(完整版)
mysql·golang·gin
Hical_W3 小时前
Hical 踩坑实录五部曲(五):Boost.MySQL 协程集成的 5 个坑
数据库·mysql·开源
czlczl200209254 小时前
mysql表复制方案
数据库·mysql
jran-7 小时前
MySQL多表操作 查询&子查询&外键约束
数据库·mysql
看到代码头都是大的8 小时前
CentoOS7安装mysql 8.0.46
mysql
阿坤带你走近大数据11 小时前
DM达梦数据库的介绍
数据库·mysql·oracle·国产信创
数据库小学妹12 小时前
企业级数据库迁移实践:从Oracle到国产数据库的兼容性与实施策略
数据库·mysql·oracle·dba
qq_2975746712 小时前
MySQL核心技术实战系列(第二篇):MySQL核心基础:库与表的增删改查(CRUD)实战
数据库·mysql