上一篇
基本语法
CREATE TRIGGER trigger_name BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name FOR EACH ROW BEGIN -- 触发器逻辑(SQL语句) END;
关键变量
示例:数据校验
CREATE TRIGGER validate_salary BEFORE INSERT ON employees FOR EACH ROW BEGIN IF NEW.salary < 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '薪资不能为负数'; END IF; END;
自动化审计日志
CREATE TRIGGER log_user_changes AFTER UPDATE ON users FOR EACH ROW INSERT INTO audit_log (user_id, action, old_value, new_value, timestamp) VALUES (OLD.id, 'UPDATE', OLD.username, NEW.username, NOW());
库存实时更新
CREATE TRIGGER update_inventory AFTER INSERT ON orders FOR EACH ROW UPDATE products SET stock = stock - NEW.quantity WHERE id = NEW.product_id;
禁止删除关键数据
CREATE TRIGGER prevent_admin_deletion BEFORE DELETE ON admins FOR EACH ROW BEGIN IF OLD.role = 'superadmin' THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '禁止删除超级管理员'; END IF; END;
本文由 莫绿柳 于2025-08-01发表在【云服务器提供商】,文中图片由(莫绿柳)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/504022.html
发表评论