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
);
创建一个名为AUDIT的新表,当COMPANY表中有更新时,将在其中插入日志消息。
审核表:
CREATE TABLE AUDIT(
EMP_ID int NOT null,
ENTRY_DATE TEXT NOT null
);
更新后创建触发器:
更新操作后,使用以下语法在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触发器: 更新前
如果要在更新数据之前创建触发器:
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';