在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ SQLite觸發(fā)器(更新之前/之后)
SQLite觸發(fā)器(刪除之前/之后)
SQLite Union All操作符
SQLite快速入門
SQLite LIMIT子句
SQLite更新查詢
SQLite插入查詢
SQLite創(chuàng)建數(shù)據(jù)庫
SQLite datetime()函數(shù)
SQLite now函數(shù)和時間格式化
SQLite左連接
SQLite AVG()函數(shù)
SQLite交叉連接(Cross Join)
SQLite運算符
SQLite ORDER BY子句
SQLite聚合函數(shù)
SQLite Union操作符
SQLite是什么?
SQLite安裝
PHP連接SQLite數(shù)據(jù)庫
SQLite命令大全
SQLite LIKE子句
SQLite OR子句
SQLite內連接(Inner Join)
SQLite日期和時間
SQLite WHERE子句
SQLite刪除表
Python連接SQLite數(shù)據(jù)庫
SQLite刪除觸發(fā)器
SQLite優(yōu)點和缺點
SQLite連接(JOIN子句)
SQLite數(shù)據(jù)類型
SQLite外連接(Outer Join)
SQLite COUNT()函數(shù)
SQLite主鍵
SQLite觸發(fā)器(插入之前/之后)
SQLite HAVING子句
SQLite IN運算符
SQLite選擇查詢
SQLite date()函數(shù)
SQLite MAX()函數(shù)
SQLite刪除查詢
SQLite分離數(shù)據(jù)庫
SQLite教程
SQLite GLOB子句
SQLite MIN()函數(shù)
SQLite導入數(shù)據(jù)
SQLite GROUP BY子句
SQLite表達式
SQLite語法大全
SQLite外鍵
SQLite觸發(fā)器
SQLite導出數(shù)據(jù)
SQLite juliandday()函數(shù)
SQLite創(chuàng)建表
Java連接SQLite數(shù)據(jù)庫
SQLite SUM()函數(shù)
SQLite特性/為什么要使用SQLite?
SQLite觸發(fā)器(更新之前/之后)
SQLite strftime()函數(shù)日期日間格式化
SQLite附加/選擇數(shù)據(jù)庫
SQLite DISTINCT子句
SQLite歷史
SQLite time()函數(shù)

SQLite觸發(fā)器(更新之前/之后)

SQLite觸發(fā)器(更新之前/之后)指定了如何在更新數(shù)據(jù)后執(zhí)行觸發(fā)器操作。 假設有兩個表companyaudit,在這里要對在company表中的每個記錄更新時進行審核。

創(chuàng)建company表的語句 -

CREATE TABLE company(  
   ID INT PRIMARY KEY     NOT NULL,  
   NAME           TEXT    NOT NULL,  
   AGE            INT     NOT NULL,  
   ADDRESS        CHAR(50),  
   SALARY         REAL  
);

創(chuàng)建一個名為audit的新表,用于在company表中有更新時插入日志消息。

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

創(chuàng)建更新后的觸發(fā)器:

使用以下語法創(chuàng)建名為“after_up”的觸發(fā)器,在COMPANY表上更新操作后觸發(fā)此觸發(fā)器。

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

現(xiàn)在更新一條記錄數(shù)據(jù),如下:

UPDATE COMPANY SET ADDRESS = 'Shenzhen' WHERE ID = 1;

查看已創(chuàng)建的觸發(fā)器 -

SELECT name FROM sqlite_master  WHERE type = 'trigger';

執(zhí)行上面語句,看到以下結果 -

SQLite觸發(fā)器:在UPDATE之前

如果要創(chuàng)建在更新數(shù)據(jù)之前的觸發(fā)器,請參考以下語句 -

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

注意:上面的兩個關鍵字:newold,它們分別表示新插入的行記錄和表中已存在行記錄。

現(xiàn)在更新一條記錄數(shù)據(jù),如下:

UPDATE COMPANY SET ADDRESS = 'Beijing' WHERE ID = 1;

查詢審計表:audit中的記錄信息,如下所示 -

sqlite> select * from audit;
1|AFTER INSERT|2017-05-25 13:39:32
2|BEFORE INSERT|2017-05-25 13:41:50
2|AFTER INSERT|2017-05-25 13:41:50
1|AFTER UPDATE|2017-05-25 14:14:00
1|Shenzhen|2017-05-25 14:18:19 -- 使用舊行的Address值寫入
1|AFTER UPDATE|2017-05-25 14:18:19
sqlite>

執(zhí)行上面語句創(chuàng)建觸發(fā)器,查看上面創(chuàng)建的觸發(fā)器 -

SELECT name FROM sqlite_master  WHERE type = 'trigger';

執(zhí)行上面語句,得到以下結果 -