2012-03-01 20 views
10

我有列說ts_activity與數據類型時間戳MYSQL和默認值到當前時間戳。我想添加更新應用當前時間戳到這個列值。如何添加「ON更新當前時間戳」到現有表列

我無法獲得更改查詢來執行此操作。雖然創建新表和它的列我可以添加,但無法通過添加更新應用當前時間戳來修改現有的列。

有人可以告訴我確切的查詢來處理這個問題。創建表後,我們可以改變它嗎?

感謝

回答

9

嘗試此查詢 -

ALTER TABLE table_name 
    CHANGE COLUMN column_name column_name TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; 

注意,表中只有一個字段可以與 'ON UPDATE CURRENT_TIMESTAMP' 選項。

29

Devart的建議可行,但如果我不重命名該列,我更喜歡使用MODIFY COLUMN而不是CHANGE COLUMN

我還假設你的ts_activity列不能爲空,因爲你有一個默認值,所以我將它設置爲NOT NULL,但這取決於你。

這是我會用以下語句:

ALTER TABLE your_table 
    MODIFY COLUMN ts_activity TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; 
+1

同意有關NULL/NOT NULL。應該像以前那樣指定它。 – Devart 2012-03-01 15:08:56

+0

謝謝所有:)。解決了。 – Rahul 2012-03-02 04:55:00

+0

如何在特定時區更新時存儲'CURRENT_TIMESTAMP'的值? – 2016-08-11 15:13:51

相關問題