📅  最后修改于: 2020-11-13 00:57:54             🧑  作者: Mango
它指定更新数据后如何创建触发器。假设我们有两个表COMPANY和AUDIT,在这里我们希望对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';
如果要在更新数据之前创建触发器,请执行以下操作:
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';