触发器基本语法
生成一个触发器
CREATE TRIGGER 触发器名 触发事件(BEFORE|AFTER INSERT|UPDATE|DELETE) ON 表名 FOR EACH ROW 触发器激活后需要执行的语句
一些注意事项
- 同一个数据库中不能创建同名触发器
- 在同一张表中不能出现触发条件相同的触发器
- 使用
NEW
和OLD
来获取数据变化前后的记录值 - 如果激活后只有一条操作,可以直接写,如果需要复杂操作则需要使用
BEGIN...END;
语句包围
查看触发器
SHOW TRIGGERS ;
删除触发器
DROP TRIGGER 触发器名;
修改触发器
将已有触发器删除后再重新创建😂
一个简单的触发器示例
CREATE TRIGGER update_userinfo_trigger
AFTER UPDATE ON user
FOR EACH ROW
BEGIN
IF NEW.user_name <> OLD.user_name THEN
UPDATE task_my SET user_name = NEW.user_name WHERE user_id = NEW.id;
UPDATE table1 SET user_name = NEW.user_name WHERE user_id = NEW.id;
UPDATE table2 SET user_name = NEW.user_name WHERE user_id = NEW.id;
END IF;
END;
该触发器实现了,在更新user表中的name时,可以同时联动着将其他表中的name也更新掉,实现用户数据的统一