觸發器是一種資料庫程式碼,在特定事件(插入、更新、刪除)發生時自動執行。觸發器的語法包含觸發器名稱、表名稱和觸發時機(BEFORE/AFTER)以及事件類型(INSERT/UPDATE/DELETE)。觸發器類型包括 BEFORE 和 AFTER,事件類型包括 INSERT、UPDATE 和 DELETE。觸發器可用於資料完整性驗證、稽核記錄、自動任務和業務邏輯。例如,可以建立觸發器在插入新行時記錄插入時間,以確保資料的一致性。
SQL 觸發器的使用和語法
什麼是觸發器?
觸發器是資料庫中的一段程式碼,當資料庫中的特定事件發生時自動觸發執行。它們用於在資料發生變化時執行自訂操作。
觸發器的語法
SQL 中觸發器的語法如下:
<code>CREATE TRIGGER trigger_name ON table_name FOR INSERT | UPDATE | DELETE AS BEGIN -- 触发器代码... END;</code>
觸發器的類型
根據觸發時機,觸發器可分為以下類型:
BEFORE
觸發器:在事件發生之前執行。 AFTER
觸發器:在事件發生之後執行。 根據事件類型,觸發器可分為:
INSERT
觸發器:在插入新行時觸發。 UPDATE
觸發器:在更新現有行時觸發。 DELETE
觸發器:在刪除行時觸發。 觸發器的使用場景
觸發器廣泛用於以下場景:
範例
以下是範例觸發器,用於在向users
表中插入新行時記錄插入時間:
<code class="sql">CREATE TRIGGER insert_timestamp BEFORE INSERT ON users AS BEGIN SET NEW.created_at = CURRENT_TIMESTAMP(); END;</code>
當插入新行到users
表時,insert_timestamp
觸發器會在插入之前執行,並自動將目前時間戳記設定為新行的created_at
欄位。
以上是sql觸發器的使用及語法的詳細內容。更多資訊請關注PHP中文網其他相關文章!