SQLite触发器(删除之前/之后)

SQLite触发器(删除之前/之后)指定如何在删除数据后执行触发器。假设有两个表:companyaudit

创建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删除触发器

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程