MySQL 触发器 更新列"语法

本教程将介绍MySQL 触发器“更新列"语法的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

MySQL 触发器 更新列"语法 教程 第1张

问题描述

我们能否在更新特定列时使用 MySQL 触发器,它会更新同一张表(同一行)中的另一列

create trigger my_trigger
BEFORE UPDATE OF col1, col2 ON TABLE_NAME
for each row
set NEW.col3 =  NEW.col3 +1;

我使用 UPDATE OF col1, col2 尝试了上述代码.它在 MySQL 中不起作用.什么是正确的语法,谁能给我一些例子.

推荐答案

您不能指定触发器仅在特定列的更新时运行(UPDATE 会影响整个记录),但您可以测试触发器中哪些列已更新:

DELIMITER ;;

CREATE TRIGGER my_trigger BEFORE UPDATE ON TABLE_NAME FOR EACH ROW
IF NOT (NEW.col1 <=> OLD.col1 AND NEW.col2 <=> OLD.col2) THEN
  SET NEW.col3 = NEW.col3 + 1;
END IF;;

DELIMITER ;

好了关于MySQL 触发器“更新列"语法的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。