2011-10-10 123 views
7

我在表中有一個列update_date,類型是時間戳。我使用phpmyadmin下拉菜單設置了CURRENT_TIMESTAMP的值。但後來,當我運行SQL UPDATE x SET ... 它更新時間戳列,如果只有任何列的變化。我想實現的是每次更新sql運行時是否有更改或不設置當前時間。有沒有辦法在MySQL中做到這一點,或者我需要每次更新被調用時都明確地設置update_date?即使沒有更改,MYSQL時間戳列自動更新?

謝謝

回答

6

您需要顯式更新列。從MySQL手冊,TIMESTAMP properties

自動更新TIMESTAMP列,如果有的話,會自動在該行中的任何其他列的值從當前值變化更新爲當前的時間戳。 如果所有其他列都設置爲其當前值,則TIMESTAMP列不會更改。如果TIMESTAMP列被明確賦值爲NULL以外的值,則自動更新不適用。

重點煤礦。

+0

我行只在一個時間戳列。所以你說我應該改變默認值爲空,然後每次sql運行時顯式更新它,或者我可以保留默認類型爲CURRENT_TIMESTAMP? – akd

+1

另一件事是,當我從的mysql_query運行此代碼沒有被更新「更新X設置UPDATE_DATE = NOW()」?原因是什麼? – akd

+0

非常有用和棘手的提示! –