0

我有一个 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 ;

现在没有错误..但是当我尝试更新价格时更新不起作用...只有插入工作

我设置了measuremart_product_id是主要的关键我不知道发生了什么我完全卡在这一点上......不明白为什么不更新..

4

1 回答 1

0

我认为您不能这样做,VALUES(CURDATE())因为它实际上不是列名。试一试price_update_date=CURDATE()

于 2013-04-19T22:16:38.433 回答