我们可以在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中不起作用。正确的语法是什么,有人可以给我一些示例吗。
我们可以在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 ;