2012-07-13 86 views
9

任何人都可以告訴我查詢數據庫列中最後插入的值。如何檢索數據庫中最後插入的值?

問題是插入的值可以放在數據庫的內部行後使用ASCDESC所以我不能使用該方法。如果有人有解決方案,請告訴我。

回答

12

爲了跟蹤插入時間,您需要使用TIMESTAMP數據列。不幸的是,由於固有的競爭條件,在這種情況下使用自動遞增主鍵不起作用。只需將條目時間戳添加爲數據列,然後使用ORDER BY time_stamp DESC LIMIT 1進行檢索即可獲取最後一條記錄。如果您感覺真的很防守,那麼我們的目標是在WHERE條款中包含原始INSERT呼叫所獨有的條件(即,WHERE ID = x AND KEY = y

2

第二@Daniel Li的評論。

在每一個持續的表創建,我有以下的列:

  • ID這是第一列和自動遞增的/同一性/序列列
  • CreatedBy默認爲用戶(」 「在SQL Server),所以我知道是誰更新的列
  • CreatedAt默認爲創建的日期時間默認SYSTEM_USER在SQL Server(」 默認GETDATE())。

(EXA的ct語法因數據庫而異)

除了競態條件,我可以通過執行「select * from table order by 1 desc」來找到最後插入的行。

雖然這些需要額外的空間,但我發現它們不僅僅是能夠解決問題而付出的回報。

相關問題