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;

 

相关文章

navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...
文章浏览阅读488次。恢复步骤概要备份frm、ibd文件如果mysql...
文章浏览阅读225次。当MySQL单表记录数过大时,增删改查性能...
文章浏览阅读1.5k次。Mysql创建、删除用户MySql中添加用户,新...
MySQL是一种开源的关系型数据库管理系统,被广泛应用于各类应...