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;
相关推荐
不瘦80斤不改名5 小时前
深入浅出 MySQL(一):一文理清 SQL 核心规范与五大分类
数据库·sql·mysql
woniu_buhui_fei5 小时前
MySQL知识整理二
数据库·mysql
看海的四叔7 小时前
【SQL】SQL同环比计算的多种实现方式
数据库·hive·sql·mysql·数据分析·同环比
nbwenren8 小时前
MySQL中日期和时间戳的转换:字符到DATE和TIMESTAMP的相互转换
数据库·mysql
NiKick9 小时前
MySql中的事务、MySql事务详解、MySql隔离级别
数据库·mysql·adb
wellc9 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
ccice0110 小时前
mysql之如何获知版本
数据库·mysql
九皇叔叔11 小时前
MySQL8.0 初始化官网数据
mysql·source·加载数据
ATCH IERV11 小时前
MySQL数据库误删恢复_mysql 数据 误删
数据库·mysql·adb
HalvmånEver12 小时前
MySQL的数据类型(一)
数据库·mysql