編寫SQL數據庫觸發器可以使用以下語法:
CREATE TRIGGER trigger_name {BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON table_name [FOR EACH ROW] BEGIN – 觸發器執行的SQL語句 END;
其中,trigger_name是觸發器的名稱,table_name是觸發器所依附的表的名稱。BEFORE和AFTER指定觸發器執行的時機,INSERT、UPDATE和DELETE指定觸發器所針對的操作類型。
[FOR EACH ROW]是可選的,用于指定觸發器對每一行記錄都執行。
在BEGIN和END之間編寫觸發器執行的SQL語句。這些SQL語句可以包括INSERT、UPDATE和DELETE等操作,用于對其他表進行操作或者修改當前表的數據。
以下是一個示例,創建一個在插入新記錄時觸發的觸發器:
CREATE TRIGGER trg_insert AFTER INSERT ON table_name FOR EACH ROW BEGIN – 觸發器執行的SQL語句 INSERT INTO other_table (column1, column2) VALUES (NEW.column1, NEW.column2); END;
在這個示例中,trg_insert是觸發器的名稱,AFTER INSERT表示觸發器在插入新記錄后執行,table_name是觸發器所依附的表的名稱,FOR EACH ROW表示觸發器對每一行記錄都執行。
BEGIN和END之間的SQL語句是將插入的記錄的column1和column2字段的值插入到other_table表中的column1和column2字段中。NEW是一個特殊的關鍵字,表示插入的新記錄的值。