MySQL如何创建AFTER INSERT触发器实现记录自动插入另一表
MySQL AFTER INSERT触发器实现emp_demo到emp_demos的数据同步
实现代码
直接执行以下SQL即可创建符合要求的触发器:
-- 避免同名触发器存在导致创建失败,先执行删除 DROP TRIGGER IF EXISTS trg_sync_emp_demo_to_demos; -- 临时修改语句分隔符,兼容触发器内的分号 DELIMITER // CREATE TRIGGER trg_sync_emp_demo_to_demos AFTER INSERT ON emp_demo FOR EACH ROW BEGIN -- 读取新插入行的字段值,写入目标表 INSERT INTO emp_demos (emp_demo_id, emp_demo_name) VALUES (NEW.emp_demo_id, NEW.emp_demo_name); END // -- 改回默认的分号分隔符 DELIMITER ;
关键说明
- 触发器绑定在
emp_demo表的插入事件上,FOR EACH ROW代表每插入一行就触发一次同步逻辑 NEW是MySQL触发器的内置关键字,指向当前刚插入完成的新记录行,通过NEW.字段名即可获取该行对应字段的写入值- 执行
DELIMITER命令是为了临时调整语句结束标识,避免触发器定义体内的分号被MySQL提前解析为语句结束,导致创建语法错误 - 如果后续两张表同步增减字段,需要同步修改触发器内的插入字段列表,否则会出现字段不匹配的报错
效果验证
执行以下测试SQL即可确认同步逻辑生效:
-- 向原表插入示例数据 INSERT INTO emp_demo (emp_demo_id, emp_demo_name) VALUES (1, 'xyz'); -- 查询目标表数据 SELECT * FROM emp_demos;
查询结果会返回
emp_demo_id=1、emp_demo_name='xyz'的记录,证明自动同步成功。
内容的提问来源于stack exchange,提问作者user19541968
相关产品推荐
相关产品推荐

