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

编辑时间: 2018-02-07 12:57:10    关键字:

 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   ); 
SQL

创建audit表的语句如下 -

CREATE TABLE audit(       EMP_ID INT NOT NULL,       BEFORE_VAL TEXT NULL,     ACTION_TYPE TEXT NULL,     ENTRY_DATE TEXT NOT NULL   ); 
SQL

创建删除后触发器:

在删除操作后,使用以下语法在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; 
SQL

先插入一条数据,以供后面删除使用 -

 

 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; 
SQL

完整的执行过程如下图中所示 -

 

推荐热图

合作推荐

2010-2018 可思数据版权所有 About SYKV | ICP备案:京ICP备14056871号