在 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$$