MySQL 触发器是一种特殊的存储过程,它会在指定的事件(如 INSERT、UPDATE 或 DELETE)发生时自动执行。触发器可以帮助你实现复杂的业务规则,确保数据的完整性和一致性。
触发器由三部分组成:
CREATE TRIGGER
语句创建触发器。假设我们有一个 orders
表和一个 order_history
表。每当在 orders
表中插入一条新记录时,我们希望自动在 order_history
表中插入一条记录。
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
customer_id INT,
order_date DATE,
total_amount DECIMAL(10, 2)
);
CREATE TABLE order_history (
history_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT,
action VARCHAR(10),
action_date TIMESTAMP
);
DELIMITER $$
CREATE TRIGGER after_order_insert
AFTER INSERT
ON orders FOR EACH ROW
BEGIN
INSERT INTO order_history (order_id, action, action_date)
VALUES (NEW.order_id, 'INSERT', NOW());
END$$
DELIMITER ;
AFTER INSERT ON orders FOR EACH ROW
:表示在 orders
表中每插入一条记录后执行触发器。NEW.order_id
:表示新插入记录的 order_id
。NOW()
:获取当前时间戳。触发器常用于以下场景:
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云