MySQL 觸發器是一種在特定事件發生時自動執行的程序。MySQL 8.0 版本引入了新的觸發器語法,該語法更加清晰簡潔,使用起來也更加方便。本文將介紹 MySQL 8.0 觸發器語法的相關內容。
首先,創建一個觸發器需要使用CREATE TRIGGER
語句。該語句的基本語法如下:
CREATE TRIGGER trigger_name trigger_time trigger_event ON table_name FOR EACH ROW trigger_body
其中,trigger_name
為觸發器的名稱,trigger_time
為觸發器的觸發時間,可以是AFTER
或BEFORE
,trigger_event
為觸發器的觸發事件,可以是INSERT
、UPDATE
或DELETE
,table_name
為觸發器所在的表名,FOR EACH ROW
表示每一行都會觸發該觸發器,trigger_body
為觸發器的處理邏輯。
下面是一個簡單的例子:
CREATE TRIGGER test_trigger AFTER INSERT ON test_table FOR EACH ROW BEGIN INSERT INTO test_table2 (name, age) VALUES (NEW.name, NEW.age); END;
該觸發器的名稱為test_trigger
,觸發時間為AFTER
,觸發事件為INSERT
,每次插入新數據時都會執行。該觸發器的處理邏輯是將插入的數據同時插入到另一張表中。
關于觸發器的特殊操作符,新版本的 MySQL 引入了兩個新特殊操作符:OLD
和NEW
。在觸發器的處理邏輯中,OLD
代表舊的(更新前的)數據,NEW
代表新的(更新后的)數據。
下面是一個使用了OLD
操作符的例子:
CREATE TRIGGER test_trigger BEFORE UPDATE ON test_table FOR EACH ROW BEGIN IF OLD.age<>NEW.age THEN SET NEW.is_older = 1; END IF; END;
該觸發器的名稱為test_trigger
,觸發時間為BEFORE
,觸發事件為UPDATE
,每次更新數據時都會執行。該觸發器的處理邏輯是如果更新前后的年齡不同,則將新數據的is_older
字段設置為 1。
以上就是 MySQL 8.0 觸發器語法的相關介紹。相信通過本文的學習,讀者可以更加清晰地理解 MySQL 觸發器的創建與使用。