2012年2月4日

[mysql]如何在mysql中設定時間自動寫入

這一篇算是寫給 YOGO 我自己看的,順便當作心得記錄一下,每次在寫php&mysql時,常常會需要把當下時間寫進資料庫裡,但每次卻還要自己寫php程式把時間寫入到mysql資料庫中,例:

date("Y-m-d H:i:s");

每次都要使用像這樣的php語法,然後再寫進資料庫裡;後來 YOGO 發現,其實只要在phpmyadmin中把該欄位設置為 timestamp,然後把預設值設為 CURRENT_TIMESTAMP,就可以像id一樣,不必為它在增加時給它值了。

因為MySQL 的 timestamp 型態的屬性比較特別, 預設 timestamp 的屬性是, 只要有值 新增/修改(同一個row), MySQL 會自動幫你將 "timestamp 型態的欄位" 寫入現在時間.

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

  • 自動初始化: 此欄位 寫入 資料時, 自動將 timestamp 的欄位寫入現在時間(建立時, 自動寫入時間).(DEFAULT CURRENT_TIMESTAMP)
  • 自動更新: 此欄位 修改 資料時, 自動將 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

沒有留言:

聖誕跑趴歡樂降★韓版假兩件針織連衣裙$890,新款顯瘦棒球服連帽風衣外套下殺$510,冬新款歐美棉襖棉服連帽短款外套限量↘$530,秋冬新款韓版大碼毛領氣質毛料外套↘$680,快上左耳貓網路購物

您好!如圖太小看不清楚,請 點選此處 看詳細內容 左耳貓蝦皮賣場 https://shopee.tw/hrf5168 左耳貓 露天賣場 http://class.ruten.com.tw/user/index00.php?s=starbox 左耳貓粉...