一、MysqL创建触发器语法:
CREATE TRIGGER trigger_name {BEFORE|AFTER} {DELETEINSERTUPDATE} ON table_name FOR EACH ROW BEGIN END;
语法说明:
- trigger_name:触发器名称。
- {BEFORE|AFTER}:before、after,表示触发时机,是执行前还是执行后触发。
- {DELETE|INSERT|UPDATE}:delete、insert、update表示触发事件。
- table_name:表名,表示是在哪个表里创建触发器。
- FOR EACH ROW:每一行受影响都触发,也叫行级触发器。
- 以BEGIN开头END结尾的语句表示触发器程序体,里面是具体的触发后的逻辑。
二、NEW 和 OLD 关键字:
除了以上语法外,常用的还有 NEW 和 OLD 关键字,OLD 用来表示原先的数据,NEW 用来表示新数据。
OLD.column // column为具体的表字段 NEW.// column为具体的表字段
三、查询已经创建的触发器:
SHOW TRIGGERS;
四、删除触发器:
DROP TRIGGER trigger_name;
五、示例:
在user表中创建一个触发器,当user表中money字段变化时,需要往user_log表中插入一条数据。
user_log_trigger AFTER UPDATE ON user BEGIN IF OLD.money != NEW.money THEN INSERT INTO user_log (before_money,after_money) VALUES (OLD.money,NEW.money); END IF; END;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。