在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
字段设置为当前时间戳。