SQLite After Update触发器

After Update触发器 指定如何在更新数据后创建触发器。假设我们有两个表 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  
);   

After Update创建触发器:

使用以下语法在更新操作后在 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 触发器:BEFORE UPDATE

如果要在更新数据之前创建触发器:

CREATE TRIGGER befor_up BEFORE UPDATE   
ON COMPANY  
BEGIN  
INSERT INTO AUDIT(EMP_ID, ENTRY_DATE) VALUES (new.ID, datetime('now'));  
END;  

查看触发器:

 

热门文章

优秀文章