在 table 中的更新列上创建触发器
Create trigger on update column in table
我尝试在 table 更新之前创建触发器。我希望它在更改两个特定列时起作用:status 和 sale_profit 列。如果这些列之一被更新,触发器必须将 is_changed 列的值设置为 1。但是下面的代码给我这样的错误:
错误:
MySQL Error 1064: You have an error in your SQL syntax ... syntax use near at line 7
SQL代码:
CREATE TRIGGER updateIsChanged
BEFORE UPDATE ON manage_product
FOR EACH ROW
BEGIN
IF NEW.`status` <> OLD.`status` || NEW.sale_profit <> OLD.sale_profit
then
SET NEW.is_changed = 1;
END IF;
END
好的。我通过在代码的开头和结尾添加 delimiter 解决了我的问题。
更新代码:
delimiter $$
CREATE TRIGGER updateIsChanged
BEFORE UPDATE ON manage_product
FOR EACH ROW
BEGIN
IF NEW.`status` <> OLD.`status` || NEW.sale_profit <> OLD.sale_profit THEN
SET NEW.is_changed = 1;
END IF;
END$$
我尝试在 table 更新之前创建触发器。我希望它在更改两个特定列时起作用:status 和 sale_profit 列。如果这些列之一被更新,触发器必须将 is_changed 列的值设置为 1。但是下面的代码给我这样的错误:
错误:
MySQL Error 1064: You have an error in your SQL syntax ... syntax use near at line 7
SQL代码:
CREATE TRIGGER updateIsChanged
BEFORE UPDATE ON manage_product
FOR EACH ROW
BEGIN
IF NEW.`status` <> OLD.`status` || NEW.sale_profit <> OLD.sale_profit
then
SET NEW.is_changed = 1;
END IF;
END
好的。我通过在代码的开头和结尾添加 delimiter 解决了我的问题。
更新代码:
delimiter $$
CREATE TRIGGER updateIsChanged
BEFORE UPDATE ON manage_product
FOR EACH ROW
BEGIN
IF NEW.`status` <> OLD.`status` || NEW.sale_profit <> OLD.sale_profit THEN
SET NEW.is_changed = 1;
END IF;
END$$