cld*_*020 16 mysql syntax triggers sql-update
我们可以在更新特定列时使用MySQL触发器,这会更新同一个表中的另一列(同一行)
create trigger my_trigger
BEFORE UPDATE OF col1, col2 ON TABLE_NAME
for each row
set NEW.col3 = NEW.col3 +1;
Run Code Online (Sandbox Code Playgroud)
我尝试使用上面的代码UPDATE OF col1, col2.它在MySQL中不起作用.什么是正确的语法,有人可以指出一些例子.
egg*_*yal 20
您不能指定仅在特定列的更新时运行触发器(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 ;
Run Code Online (Sandbox Code Playgroud)