[英]Trigger Update Before Or After Update On Same Table
我有這張桌子:
通過使用PHPMYADMIN,我正在考慮設置一個觸發器,以便每當我更改任何項目的價格時,它都將觸發以記錄該特定項目在price_change_time上的時間。
我的觸發器是這樣的:
DELIMITER // CREATE TRIGGER update_time BEFORE UPDATE ON product FOR EACH ROW BEGIN UPDATE product SET price_change_time = NOW() WHERE NEW.price <> OLD.price; END; // DELIMITER ;
不幸的是,這行不通,我得到:
MySQL said:Documentation #1442 - Can't update table 'product' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
我閱讀了一些以前相關的問題和答案,但仍然無法滿足我的情況。
有人願意幫助嗎? 我的問題是:
1) Is there any way to achieve what I want by just using PHPMYADMIN?
2) If Not then what is the proper way?
您可以創建在MySQL表中的列是這樣的 :
CREATE TABLE product (
...
price_change_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
...
);
這會在您的表中創建一個“魔術”列,該列在第一次插入或更新時會更新為當前時間。
MySQL的最新版本(而不是較舊的版本)也允許DATETIME
列使用。
您可以使用DATE(price_change_time)
檢索時間戳的日期部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.