MYSQL:触发错误

MYSQL : Getting error in TRIGGER

我想要触发哪个功能 - 在产品更新之前 table 如果价格值发生变化,则将该行复制到 product_log table。我想要此功能来管理产品价格日志。

这是我的产品table

#   Name            Type    
1   id              int(11) 
2   name            varchar(100)
3   price           bigint(20)
4   created_date    datetime

这是我的product_logtable

#   Name            Type    
1   id              int(11) 
2   name            varchar(100)
3   price           bigint(20)
4   created_date    datetime
5   is_procced      int(11)

这是我的触发器 -

CREATE TRIGGER pro_log BEFORE UPDATE ON product
 FOR EACH ROW
 BEGIN
     IF (OLD.price != NEW.price)
     THEN
        INSERT INTO product_log (SELECT *, 1 FROM product WHERE id = OLD.id);
     END IF;
 END;

我收到这个错误 - #1064 - 你的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 6 行

附近使用的正确语法

您需要更改分隔符。否则触发器定义在第一个分号处结束,这会使它不完整。

delimiter |
CREATE TRIGGER pro_log BEFORE UPDATE ON product
 FOR EACH ROW
 BEGIN
     IF (OLD.price != NEW.price)
     THEN
        INSERT INTO product_log 
        SELECT *, 1 FROM product WHERE id = OLD.id;
     END IF;
 END
|
delimiter ;