MySQL触发器的使用

 

一、MySQL创建触发器语法:

CREATE TRIGGER trigger_name
{BEFORE|AFTER}
{DELETE|INSERT|UPDATE}
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   // column为具体的表字段

 

三、查询已经创建的触发器:

SHOW TRIGGERS;

 

四、删除触发器:

DROP TRIGGER trigger_name;

 

五、示例:

在user表中创建一个触发器,当user表中money字段变化时,需要往user_log表中插入一条数据。

CREATE TRIGGER user_log_trigger
AFTER UPDATE
ON user
FOR EACH ROW
BEGIN
  IF OLD.money != NEW.money THEN
    INSERT INTO user_log (before_money, after_money) VALUES (OLD.money, NEW.money);
  END IF;
END;

 

posted @ 2020-11-23 17:47  幽篁晓筑  阅读(271)  评论(0编辑  收藏  举报