设置字段以在UPDATE上自动插入时间戳?

JD *_*cks 6 mysql triggers

我有一个名为DEC字段的表,product_price我想添加一个名为的字段price_updated_date.有没有办法将表设置为每当product_price字段更新时自动插入当前时间戳?

如果没有,是否有办法将其设置为在条目完全更新时插入当前时间戳?

更新:

似乎使用触发器是这里的最佳选择.我是触发器的新手并且在创建它时遇到了一些麻烦.这是我的代码:

CREATE TRIGGER price_update
AFTER UPDATE ON cart_product
FOR EACH ROW
IF(OLD.product_price != NEW.product_price)
THEN
UPDATE cart_product 
SET price_updated_date = CURDATE()
WHERE product_id = NEW.product_id
Run Code Online (Sandbox Code Playgroud)

这给了我这个错误:

#1064 - 您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第8行的''附近使用正确的语法

小智 14

为什么不将该字段的属性设置为:

DEFAULT CURRENT_TIMESTAMP 
ON UPDATE CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)


Vad*_*yus 10

是的,在你的桌子上更新后创建触发器

CREATE TRIGGER price_update AFTER UPDATE on _table_ FOR EACH ROW UPDATE _table_ SET price_updated_date = CURTIME() where id=NEW.id

  • 是的,通过添加IF THEN构造修改FOR EACH ROW(IF OLD.product_price!= NEW.product_price)那么_run_update_code (2认同)