SQLite 触发器:INSERT 之后/ INSERT 之前

17 Mar 2025 | 阅读 2 分钟

它指定如何在插入数据后创建触发器。假设我们有两个表 COMPANY 和 AUDIT,这里我们想为插入到新创建的 COMPANY 表中的每个记录保留审计跟踪。如果您已经有一个 COMPANY 表,请删除它并重新创建。

COMPANY表

创建一个名为 AUDIT 的新表,其中将插入日志消息,每当在 COMPANY 表中为新记录输入一个条目时

AUDIT表

创建触发器后插入

使用以下语法在 COMPANY 表上创建名为“audit_log”的触发器,在插入操作之后。

这里,ID 是 AUDIT 记录 ID,EMP_ID 是将从 COMPANY 表中获取的 ID,DATE 将保留记录在 COMPANY 表中创建的时间戳。

Sqlite Trigger after insert 1

现在在公司表中插入一些记录,它将在 AUDIT 表中创建一个审计日志记录。

Sqlite Trigger after insert 2

同时,将在 AUDIT 表中创建一个记录。这仅仅是因为触发器,我们已经在 COMPANY 表的 INSERT 操作上创建了该触发器。 让我们看看 AUDIT 表。

Sqlite Trigger after insert 3

如何列出触发器

您可以使用 sqlite_master 语句列出触发器。

输出

Sqlite Trigger after insert 4

您可以查看触发器的名称。

您还可以使用 AND 子句列出特定表上的触发器。

Sqlite Trigger after insert 5

SQLite 触发器:INSERT 之前

如果要创建插入数据之前的触发器

Sqlite Trigger after insert 6

您可以看到触发器已创建,因此您无法插入记录。

Sqlite Trigger after insert 7

检查已创建的触发器

Sqlite Trigger after insert 8

在这里您可以看到两个已创建的触发器。