我有一个product_price_log表。我更新了product_price中更新新价格的位置 表
我正在使用触发器:
drop trigger if exists product_update;
delimiter $$
CREATE TRIGGER product_update
BEFORE update ON w3xab_virtuemart_product_prices
FOR EACH ROW
BEGIN
DECLARE virtuemart_product_id int;
DECLARE old_product_price decimal(15,5) default 0;
DECLARE new_product_price decimal(15,5) default 0;
DECLARE price_update_date DATE;
IF (new.product_price <> old.product_price)
THEN
INSERT into product_price_log
(virtuemart_product_id,old_product_price, new_product_price, price_update_date)
VALUES (new.virtuemart_product_id, old.product_price, new.product_price, CURDATE())
ON DUPLICATE KEY UPDATE
old_product_price = VALUES(old.product_price),
new_product_price = VALUES(new.product_price),
price_update_date = CURDATE();
END IF;
END$$
delimiter ;
现在没有错误..但是当我尝试更新价格时更新无效...只有插入工作
我设置 virtuemart_product_id 是主要关键 我不知道什么事情我完全陷入困境......无法理解为什么不更新..
答案 0 :(得分:0)
我认为你不能VALUES(CURDATE())
,因为它实际上不是列名。
试试price_update_date=CURDATE()