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 ;

今はエラーはありません..しかし、価格を更新しようとすると更新が機能しません...挿入のみが機能しています

私はrightmart_product_idをプライマリキーに設定しました。何が起こっているのかわかりません。この時点で完全に立ち往生しています...なぜ更新しないのか理解できません..

4

1 に答える 1

0

VALUES(CURDATE())実際には列名ではないので、できないと思います。試してみてくださいprice_update_date=CURDATE()

于 2013-04-19T22:16:38.433 に答える