2016-08-02 214 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 

改變它只能是這意味着任何修改將不會觸發要更新的時間戳值。