数据库 · 4 11 月, 2024

SQLITE 教程:SQLite 觸發器(Trigger)

SQLITE 教程:SQLite 觸發器(Trigger)

在資料庫管理系統中,觸發器(Trigger)是一種自動執行的程序,當特定事件發生時(如插入、更新或刪除操作),觸發器會自動執行預定義的 SQL 語句。SQLite 作為一個輕量級的資料庫引擎,支持觸發器的使用,這使得開發者能夠在資料庫層面上實現自動化的數據處理。

觸發器的基本概念

觸發器通常與表格(Table)相關聯,並在以下三種事件中觸發:

  • INSERT:當有新記錄插入到表格時觸發。
  • UPDATE:當已有記錄被更新時觸發。
  • DELETE:當記錄被刪除時觸發。

觸發器的主要用途包括數據驗證、自動計算、日誌記錄等。透過使用觸發器,開發者可以減少應用程式層面的邏輯,將部分業務邏輯直接放在資料庫中執行。

創建觸發器的語法

在 SQLite 中,創建觸發器的基本語法如下:


CREATE TRIGGER trigger_name
AFTER|BEFORE INSERT|UPDATE|DELETE
ON table_name
FOR EACH ROW
BEGIN
    -- SQL 語句
END;

在這裡,trigger_name 是觸發器的名稱,AFTERBEFORE 指定觸發器的執行時機,INSERTUPDATEDELETE 指定觸發的事件,table_name 是與之關聯的表格名稱。

範例:創建一個簡單的觸發器

假設我們有一個名為 employees 的表格,該表格包含員工的基本信息。我們希望在每次插入新員工記錄時,自動記錄插入的時間。可以使用以下 SQL 語句創建觸發器:


CREATE TABLE employees (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TRIGGER log_employee_insert
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
    INSERT INTO employee_log (employee_id, action, timestamp)
    VALUES (NEW.id, 'insert', CURRENT_TIMESTAMP);
END;

在這個範例中,我們首先創建了一個 employees 表格,然後創建了一個名為 log_employee_insert 的觸發器。每當有新員工插入時,觸發器會自動將該員工的 ID、操作類型和當前時間插入到 employee_log 表格中。

觸發器的管理

在 SQLite 中,可以使用以下 SQL 語句來刪除觸發器:


DROP TRIGGER trigger_name;

這樣可以有效地管理和維護資料庫中的觸發器,確保其運行的有效性和必要性。

總結

SQLite 的觸發器功能為開發者提供了一種強大的工具,能夠在資料庫層面上自動執行特定操作,從而提高數據處理的效率和一致性。透過合理地使用觸發器,可以簡化應用程式的邏輯,並確保數據的完整性和準確性。

如果您正在尋找高效的 VPS 解決方案來運行您的 SQLite 資料庫,Server.HK 提供了多種選擇,適合不同需求的用戶。無論是 香港伺服器 還是其他雲服務,我們都能為您提供穩定的支持。