簡體   English   中英

Mysql中DateTime和TimeStamp之間的混淆

[英]confusion between DateTime and TimeStamp in Mysql

我正在使用mysql,並且在所有表中都有四個字段,

created_by varchar(128)
created_on timestamp default current_timestamp
updated_by varchar(128)
updated_on timestamp default current_timestamp

我已經閱讀了關於堆棧溢出的不同答案,每次在表行上執行某些操作時,默認值為current_timestamp的字段會自動更新。 但我想created_on在更新新記錄時自動插入current_timestamp ,並且在一段時間后更新此記錄時,只有updated_by字段自動更新為current_timestamp而不是created_by

created_by varchar(128)
created_on timestamp default current_timestamp
updated_by varchar(128)
updated_on timestamp default current_timestamp ON UPDATE CURRENT_TIMESTAMP

更多信息:: http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html

我用這個結構:

created_by varchar(128)
created_on timestamp  NOT NULL DEFAULT '0000-00-00 00:00:00'
updated_by varchar(128)
updated_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

在第一次INSERT INTO使用NOW() for created_on 之后修改行將始終自動更新updated_on字段。 對於UPDATE語句,根本不需要觸及TIMESTAMP列。 (注意:只有在確實更新某些內容時才會更新時間戳.IE。使用現有值更新列不會修改任何內容,因此時間戳不會更新。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM