SQLite 触发器:AFTER UPDATE

SQLite 触发器:AFTER UPDATE

它指定了在更新数据后如何创建触发器。假设我们有两个表COMPANY和AUDIT,这里我们想为在COMPANY表中被更新的每条记录保留审计记录。

COMPANY表:

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

在COMPANY表中有更新时,将日志消息插入到名为AUDIT的新表中。

AUDIT表:

CREATE TABLE AUDIT(
    EMP_ID INT NOT NULL,
    ENTRY_DATE TEXT NOT NULL
); 

创建触发器 after update:

使用以下语法在 COMPANY 表上创建名为 “after_up” 的触发器,触发时机为更新操作之后。

CREATE TRIGGER after_up AFTER UPDATE 
ON COMPANY
BEGIN
INSERT INTO AUDIT(EMP_ID, ENTRY_DATE) VALUES (new.ID, datetime('now'));
END;

SQLite 触发器:AFTER UPDATE

现在将旧记录更新如下:

UPDATE COMPANY SET ADDRESS = 'Noida' WHERE ID = 1; 

SQLite 触发器:AFTER UPDATE

查看结果:

SQLite 触发器:AFTER UPDATE

查看触发器:

SELECT name FROM sqlite_master
WHERE type = 'trigger'; 

SQLite 触发器:AFTER UPDATE

SQLite 触发器:BEFORE UPDATE

如果你想在更新数据之前创建触发器:

CREATE TRIGGER befor_up BEFORE UPDATE 
ON COMPANY
BEGIN
INSERT INTO AUDIT(EMP_ID, ENTRY_DATE) VALUES (new.ID, datetime('now'));
END;

SQLite 触发器:AFTER UPDATE

查看触发器:

SELECT name FROM sqlite_master
WHERE type = 'trigger';      

SQLite 触发器:AFTER UPDATE

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程