1

我想在 sqlite 中为我的表创建一个小审计机制,每当对表进行更改时,我都会更新 2 个字段来显示谁更改了数据以及何时更改数据。我们在 MS SQL Server 数据库中使用了类似的概念。但我想知道如何在 sqlite 中实现这一点。我在表的末尾添加了 2 个字段,称为 updatedusername 和一个 updateddatetime 字段。当最终用户登录我的 Web 应用程序并进行更改时,我可以“插入”用户凭据以及特定表的任何其他数据......但我想知道如何使用触发器完成同样的事情。任何人都可以对此有所了解吗?
例如,如果我要设置一个触发器,当插入新记录或更新现有数据时,我将如何提供登录到应用程序以进行更改的人的用户名,而不是一些通用的 web id被我的服务器使用....

谢谢。

4

1 回答 1

2

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 具有可以提供该信息的功能。

于 2013-02-07T16:34:20.943 回答