SQLite触发器(删除之前/之后)指定如何在删除数据后执行触发器。假设有两个表: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
表的语句如下 -
CREATE TABLE audit(
EMP_ID INT NOT NULL,
BEFORE_VAL TEXT NULL,
ACTION_TYPE TEXT NULL,
ENTRY_DATE TEXT NOT NULL
);
创建删除后触发器:
在删除操作后,使用以下语法在company
表上创建名为“after_del
”的触发器,当删除company
表中的一条记录成功之后,就会将这条删除的名称记录到audit
表中。
CREATE TRIGGER after_del AFTER DELETE
ON COMPANY
BEGIN
INSERT INTO AUDIT(EMP_ID, BEFORE_VAL, ACTION_TYPE, ENTRY_DATE) VALUES (old.ID, old.name, 'AFTER DELETE', datetime('now'));
END;
先插入一条数据,以供后面删除使用 -
INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) VALUES (1, 'Maxsu', 24, 'Haikou', 40000.00);
-- 删除记录,触发上面定义的触发器
delete from company where id=1;
-- 查询删除记录的执行结果
select * from company;
-- 查询删除记录之后的审计记录情况
select * from audit;
完整的执行过程如下图中所示 -
上一篇:
SQLite触发器(更新之前/之后)
下一篇:
SQLite快速入门