mysql创建一个改变固定字段才更新时间的时间戳timestamp

来源:互联网 发布:java向上取整 编辑:程序博客网 时间:2024/06/01 10:22

最近在做一些小东西的时候偶然要用到mysql timestamp的这个时间戳来满足某个特定字段更新时才更新时间戳的需求


简单地写一些



例如表a中有num,age,name,score,以及createDate 这五个字段

crateDate是时间戳类型

默认为TIMESTAMP DEFAULT CURRENT_TIMESTAMP


现在要求插入记录时更新时间戳,并且当改变score时更新时间戳,改变其他字段时不会更新时间戳




关于时间戳的具体解释已经默认值的设置请看这篇文章http://www.2cto.com/database/201205/131759.html

然后写个触发器吧,目前只想到这个办法

delimiter//

CREATE  TRIGGER update_time BEFORE UPDATE ON a
FOR EACH ROW

 begin
If new.score<> old.score then set new.createDate= current_timestamp; 
end if;

end//


对于new和old 请看http://www.2cto.com/database/201301/186392.html

好像-new 字段不能用在before update 的触发器

会报以下错误

Updating of NEW row is not allowed in after trigger



欢迎补充.....


0 0
原创粉丝点击