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;
现在将旧记录更新如下:
UPDATE COMPANY SET ADDRESS = 'Noida' WHERE ID = 1;
查看结果:
查看触发器:
SELECT name FROM sqlite_master
WHERE type = 'trigger';
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;
查看触发器:
SELECT name FROM sqlite_master
WHERE type = 'trigger';