2012-09-10 80 views
4

它可能獲取創建和更新時間的一行直接與SQL/MySQL? 我知道一個方法來獲取表最後更新,但我想知道是否會有一個快速的本地方式來執行此與SQL。在mysql中獲取行創建/更新時間戳/日期

我做了一個辦法做到這一點自動創建表2名中的字段(CREATED_DATE和updated_date),但我還是決定先問你,因爲有可能是一個更好的方式來做到這一點。

我聽到了建議! 感謝您的幫助。

+0

至於何時成爲被遺忘一個我可以告訴沒有內置的方式來獲取這些信息。你必須添加你自己的專欄來完成它。 – aroth

+0

http://stackoverflow.com/questions/307438/how-can-i-tell-when-a-mysql-table-was-last-updated?rq=1 – Jocelyn

+0

@Jocelyn你的鏈接解釋如何ü得到了最後一次更新對於一個表,不是爲表 –

回答

1

我不知道有什麼辦法做到這一點沒有在表中有兩個額外的列 - 但是我做到及時更新他們什麼是有一個數據庫觸發器做到這一點,而不是應用程序邏輯。

有一些好處,但也有一些缺點,使用觸發器的方法。

首先,好處:

  • 這是很容易通過這種方式添加它作爲一種事後到一個應用程序。申請/網站代碼的更改很少。觸發器負責全部處理。 (假設你通過指定字段名中插入新行)
  • 觸發器將採取任何其他方式來改變數據關懷 - 有人從控制檯更改排仍然會造成觸發器觸發如使用同一個數據庫中的另一個應用程序。
  • 允許可能性(雖然我不這樣做的話)具有純行插入/更新表。

但是一些缺點也:

  • 除非你知道觸發器在做這些更新,它往往被忽視和觸發器遷移到另一臺服務器等
+0

即時創建基於DataMapper的ORM,並試圖添加一個選項來恢復最後的字段編輯時間和更新時間,只有當用戶需要它的東西(例如,得到一個用戶註冊時間)我懷疑是否有任何直接的方法讓SQL檢索這些信息....如果不存在,那麼無論如何,我會繼續使用真正的字段來存儲更新/創建時間 –

+0

@StefanLuv是的,它更多的是在表上使用單個觸發器更易於使用,而不必修改許多不同的代碼段來更新同一個表 - 並修改所有查詢/操作。 – Fluffeh

+0

這就是所有,更好的選擇它觸發器,由你和感謝參與! –