2011-02-03 136 views
0

是否可以將字段設置爲時間戳,但是在更新爲當前時間戳時沒有更改?MySQL時間戳字段

我試圖做到這一點使用phpMyAdmin,它不會讓我刪除默認on update CURRENT_TIMESTAMP

看到這個問題的答案:Support user time zones

我嘗試使用TIMESTAMP,因爲它將使我可以輕鬆玩弄時區。

更新同一行時,不可能保持該字段中的數據完整無缺嗎?

回答

1

這是TIMESTAMP的行爲。它可能會讓人困惑。閱讀this來完成它。或者考慮使用DATETIME。

+0

請參閱我最近的更新。謝謝 – 2011-02-03 20:47:34

0

使用命令界面。 看起來您必須在表創建時指定一個「DEFAULT CURRENT_TIMESTAMP」屬性才能獲得該行爲。 documentation here.

1

服務器允許任何組合DEFAULTON UPDATE,如果phpMyAdmin不允許你設置它,那麼它可能是phpMyAdmin中的一個錯誤。無論如何,需要注意的是timestamp列在mysql中是專門處理的,所以如果你的表中有多個這種類型,它很可能不會按照你期望的方式工作。

mysql docs

在CREATE TABLE語句中,第一個TIMESTAMP列可以在以下任何一種方式聲明:

  • 與這兩個DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句,列具有其默認值的當前時間戳,並自動更新。
  • 既不使用DEFAULT也不使用ON UPDATE子句,它與DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP相同。
  • 使用DEFAULT CURRENT_TIMESTAMP子句並且沒有ON UPDATE子句,該列具有默認值的當前時間戳,但不會自動更新。
  • 沒有DEFAULT子句和ON UPDATE CURRENT_TIMESTAMP子句,該列的默認值爲0並自動更新。
+0

我有兩個,爲什麼是這個問題? – 2011-02-03 20:49:46

相關問題