2013-12-11 46 views
9

使用mysql,我試圖從日期列和時間列中創建時間戳列。如果日期或時間列包含NULL值,則mysql會自動將timestamp列中的對應值設置爲current_timestamp。有沒有辦法讓它默認爲NULL,而不是當前的時間戳?MySQL的時間戳爲默認爲空,而不是current_timestamp

喜歡的東西:

ALTER TABLE customers ADD s_timestamp TIMESTAMP; 
UPDATE customers 
SET s_timestamp = timestamp(s_date,s_time) DEFAULT NULL; 

回答

23

使用該查詢並增加你的專欄

ALTER TABLE `customers` 
ADD COLUMN `s_timestamp` TIMESTAMP NULL DEFAULT NULL; 

而且,如果你想獲得當前的時間戳僅限更新:

ALTER TABLE `customers` 
ADD COLUMN `s_timestamp` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP; 
-1

我想這應該工作:

ALTER TABLE customers ADD COLUMN s_timestamp TIMESTAMP DEFAULT NULL; 
+1

它沒有。當'NULL'被插入時,'TIMESTAMP'列有[特殊的自動行爲](http://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html),所以如果你真的想要能夠要設置一個空標記,您必須明確地使列可爲空。 –

+0

用postgres進行測試 - 它的工作 – niyou

+0

正式指出,但問題是關於MySQL的行爲。 –

相關問題