主题
触发器用法
1. 什么是触发器
触发器(Trigger)是绑定在表上的特殊存储程序,当对表进行 INSERT、UPDATE 或 DELETE 操作时自动执行,用于实现自动化业务逻辑和数据校验。
2. 触发器的分类
- BEFORE 触发器:在数据操作之前执行,可用于验证或修改数据。
- AFTER 触发器:在数据操作之后执行,常用于日志记录或联动操作。
3. 创建触发器语法
sql
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name FOR EACH ROW
BEGIN
-- 触发器逻辑
END;
4. 示例:在插入数据前自动设置时间戳
sql
CREATE TRIGGER before_insert_orders
BEFORE INSERT ON orders
FOR EACH ROW
BEGIN
SET NEW.created_at = NOW();
END;
5. 示例:在删除用户时同步删除相关订单
sql
CREATE TRIGGER after_delete_users
AFTER DELETE ON users
FOR EACH ROW
BEGIN
DELETE FROM orders WHERE user_id = OLD.id;
END;
6. 触发器中的 NEW 和 OLD
- NEW:表示插入或更新时的新数据行(BEFORE 和 AFTER INSERT/UPDATE 中使用)。
- OLD:表示删除或更新前的旧数据行(BEFORE 和 AFTER DELETE/UPDATE 中使用)。
触发器可以实现自动化的数据处理和业务规则,保障数据一致性和完整性。