2020年6月29日 星期一

MySQL(Timestamp的屬性)心得 -- 20200630

今天練習寫網站「點擊率」,結果在Update網頁的點擊率時,發現「張貼時間」欄位會自動更新目前的時間,於是爬文後才知道是因為MySQL內Timestamp屬性造成的。


簡單來說,預設timestamp屬性是「只要有值」 在同一筆資料只要新增/修改的時候,MySQL會自動幫你將「 timestamp型態的欄位寫入目前現在的時間

兩種屬性可提供調整使用:

自動初始化: 此欄位「寫入」資料時,自動將timestamp的欄位,寫入現在時間。

                          DEFAULT CURRENT_TMESTAMP(建立時,自動寫入時間)

自動更新:此欄位「修改」資料時,自動將timestamp的欄位,寫入現在時間。

                         ON UPDATE CURRENT_TIMESTAMP(更新時,自動寫入時間)


主要有下述 四種 設法/時機: (範例轉載自官方網站: MySQL 5.1 Reference Manual - TIMESTAMP Properties)
  • 自動初始化自動更新
    ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  • 只做自動初始化 (建立時初始化, 更新時不修改時間)
    ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP
  • 只做自動更新 (建立時不做初始化動作)
    ts TIMESTAMP DEFAULT 0 ON UPDATE CURRENT_TIMESTAMP
  • 全都不做(使用這個的話, 或許直接用 DATETIME 的型態 似乎比較方便?)
    ts TIMESTAMP DEFAULT 0

沒有留言:

張貼留言