在MySQL表中添加觸發器,您需要使用CREATE TRIGGER
語句
DELIMITER //
CREATE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE
ON table_name FOR EACH ROW
BEGIN
-- 觸發器邏輯
END;
//
DELIMITER ;
trigger_name
:觸發器的名稱,用于標識觸發器。BEFORE/AFTER
:指定觸發器是在操作之前還是之后執行。INSERT/UPDATE/DELETE
:指定觸發器關聯的操作類型。table_name
:指定觸發器關聯的表。FOR EACH ROW
:表示觸發器將對每一行進行操作。BEGIN...END
:包含觸發器邏輯的代碼塊。假設我們有一個名為students
的表,結構如下:
CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
updated_at TIMESTAMP
);
現在,我們想在每次更新學生信息時自動更新updated_at
字段。可以創建以下觸發器:
DELIMITER //
CREATE TRIGGER update_student_timestamp
BEFORE UPDATE
ON students FOR EACH ROW
BEGIN
SET NEW.updated_at = NOW();
END;
//
DELIMITER ;
這個觸發器會在每次更新students
表的記錄之前自動執行,將updated_at
字段設置為當前時間戳。