mysql 觸發(fā)器的語法:create trigger [觸發(fā)器名]before/after [insert/update/delete] on [表名]for each row[觸發(fā)器主體]
MySQL 觸發(fā)器的語法
觸發(fā)器是一種數(shù)據(jù)庫對(duì)象,用于在插入、更新或刪除表中的記錄時(shí)自動(dòng)執(zhí)行特定操作。MySQL 中觸發(fā)器的語法如下:
CREATE TRIGGER [觸發(fā)器名] BEFORE/AFTER [INSERT/UPDATE/DELETE] ON [表名] FOR EACH ROW [觸發(fā)器主體]
登錄后復(fù)制
語法參數(shù)解釋:
觸發(fā)器名:為觸發(fā)器指定一個(gè)名稱。
時(shí)機(jī):指定觸發(fā)器在操作發(fā)生前(BEFORE)或后(AFTER)執(zhí)行。
事件:指定觸發(fā)器在哪些操作(INSERT/UPDATE/DELETE)上觸發(fā)。
表名:指定要為其創(chuàng)建觸發(fā)器的表。
觸發(fā)器主體:觸發(fā)器執(zhí)行的動(dòng)作,包括 SQL 語句和控制流語句。
FOR EACH ROW:指定觸發(fā)器對(duì)每個(gè)受影響的行執(zhí)行一次。
示例:
以下觸發(fā)器示例會(huì)在向 customers 表中插入新記錄時(shí)更新 last_updated 列:
CREATE TRIGGER update_last_updated BEFORE INSERT ON customers FOR EACH ROW SET last_updated = NOW();
登錄后復(fù)制
詳細(xì)內(nèi)容:
觸發(fā)器時(shí)機(jī):觸發(fā)器可以在操作之前(BEFORE)或之后(AFTER)執(zhí)行。
觸發(fā)器事件:觸發(fā)器可以在 INSERT、UPDATE 或 DELETE 操作上觸發(fā)。
觸發(fā)器主體:觸發(fā)器主體可以包含以下內(nèi)容:
SQL 語句(例如,更新、插入或刪除其他表中的記錄)。
控制流語句(例如,IF-ELSE、CASE 等)。
使用 OLD 和 NEW 關(guān)鍵字訪問觸發(fā)操作前后的記錄值。
限制:觸發(fā)器不能引用同一表中的其他觸發(fā)器。
通過創(chuàng)建觸發(fā)器,可以自動(dòng)化數(shù)據(jù)庫中的任務(wù),減少重復(fù)操作并確保數(shù)據(jù)完整性。