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;
相关推荐
鹏码纵横1 小时前
已解决:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 异常的正确解决方法,亲测有效!!!
java·python·mysql
野槐3 小时前
node.js连接mysql写接口(一)
数据库·mysql
麻辣清汤4 小时前
MySQL 索引类型及其必要性与优点
数据库·mysql
-借我杀死庸碌的情怀-6 小时前
navicat可视化页面直接修改数据库密码——mysql、postgresql、mangodb等
数据库·mysql·postgresql
debug 小菜鸟8 小时前
MySQL 主从复制与一主多从架构实战详解
数据库·mysql·架构
weixin_438335409 小时前
MySQL索引优化:回表
数据库·mysql
AA-代码批发V哥10 小时前
MySQL-DDL语句深度解析与实战指南
数据库·mysql
进击的CJR11 小时前
MySQL 8.0 OCP 英文题库解析(十八)
android·mysql·开闭原则
进击的CJR12 小时前
MySQL 8.0 OCP 英文题库解析(十四)
android·mysql·开闭原则
Forest_HAHA12 小时前
<8>-MySQL复合查询
数据库·mysql