2013-02-07 125 views
0

我想爲sqlite中的表創建一個小審計機制,其中任何時候對錶進行更改,我更新2個字段,顯示誰更改了數據以及何時更改數據。 我們在MS SQL Server數據庫中使用了類似的概念。 但我想知道如何在sqlite中實現這一點。我在我的表的結尾處添加了兩個字段,名稱分別爲updatedusername和updateddatetime字段。 當最終用戶登錄到我的Web應用程序並進行更改時,我可以「插入」用戶憑據以及特定表的任何其他數據...但我想知道如何使用觸發器完成同樣的事情。 任何人都可以對此有所瞭解嗎?
例如,如果我要設置觸發器,插入新記錄或更新現有數據時,如何提供登錄到應用程序以進行更改的人員的用戶名,而不是某些通用Web我的服務器正在使用的ID ....sqlite - 使用觸發器創建審計

謝謝。

回答

1

SQLite沒有用戶在其他數據庫中可以找到的概念,這意味着無法詢問用戶發起操作的方式。

如果客戶手頭有一個用戶名,你就必須確保每一個INSERTUPDATE前提是:

CREATE TABLE foo (bar INTEGER, baz INTEGER, whodunnit TEXT); 

INSERT INTO foo VALUES (1, 123, 'bob'); 
UPDATE foo SET baz = 1, whodunnit = 'bob' WHERE bar = 123; 

的時間可以自動觸發填寫因爲SQLite的具有函數可以提供這些信息。

+0

好的。正如上面所描述的那樣,我已經「手動」地進行了操作。只需要確保我沒有失去任何東西。 – dot