📜  SQLite触发器:更新后

📅  最后修改于: 2020-11-13 00:57:54             🧑  作者: Mango

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的新表,当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'; 

SQLite触发器:更新前

如果要在更新数据之前创建触发器,请执行以下操作:

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