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