微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL触发器的使用

 

一、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 举报,一经查实,本站将立刻删除。

相关推荐