2016-08-02 123 views
0

我有一个用户表,他们加入的日期有一列。这是一个时间戳数据类型。我希望列的值始终是用户加入时的当前时间,所以默认值是当前时间。如果用户的配置文件更新,则用户的加入日期更新为当前时间。换句话说,说一个用户在8月2日加入,然后在9月17日更新他们的个人资料。加入日期的新值将为9月17日。即使我不告诉我的sql语句来更新该行,也会发生这种情况。如何防止更新MySQL行时更新时间戳列?

如何才能使时间戳列仅在创建新行时受到影响?

+1

检查'show create table table_name'并且它会告诉你列的定义,它将被作为'ON UPDATE CURRENT_TIMESTAMP',删除那个部分,你就完成了。 –

+0

http://stackoverflow.com/q/18962757/4323504阅读第一个答案的可能的副本 –

回答

0

听起来像是你需要配置默认的约束,使其填充只插入列:

DEFAULT CURRENT_TIMESTAMP 
ALTER TABLE table CHANGE datetime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

改变它只能是这意味着任何修改将不会触发要更新的时间戳值。