MySQL 触发器(Trigger)是一种特殊的存储过程,它会在指定的事件(如 INSERT、UPDATE 或 DELETE)发生时自动执行。触发器可以用于在数据库层面上实现复杂的业务逻辑,确保数据的完整性和一致性。
MySQL 触发器主要有以下几种类型:
CREATE TRIGGER trigger_name
trigger_time trigger_event
ON table_name FOR EACH ROW
BEGIN
-- 触发器执行的 SQL 语句
END;
trigger_name
:触发器的名称。trigger_time
:触发器执行的时间,可以是 BEFORE
或 AFTER
。trigger_event
:触发器响应的事件,可以是 INSERT
、UPDATE
或 DELETE
。table_name
:触发器作用的表名。BEGIN...END
:触发器执行的 SQL 语句块。假设我们有一个 users
表,结构如下:
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
email VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
我们希望在插入新用户时,自动记录插入时间:
DELIMITER $$
CREATE TRIGGER before_user_insert
BEFORE INSERT
ON users FOR EACH ROW
BEGIN
SET NEW.created_at = CURRENT_TIMESTAMP;
END$$
DELIMITER ;
SHOW TRIGGERS
查看触发器的定义和顺序。SIGNAL
和 RESIGNAL
语句处理错误。通过以上信息,你应该对 MySQL 触发器有了全面的了解,并能够在实际开发中应用它们。
领取专属 10元无门槛券
手把手带您无忧上云