MySQL触发器是一种特殊的存储过程,它会在指定的表上执行特定的操作(如INSERT、UPDATE或DELETE)时自动执行。触发器可以在数据更改之前或之后执行,从而实现数据的自动处理和验证。
CREATE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE ON table_name
FOR EACH ROW
BEGIN
-- 触发器的逻辑代码
END;
假设我们有一个订单表 orders
,我们希望在每次插入新订单时自动更新库存表 inventory
。
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
product_id INT,
quantity INT
);
CREATE TABLE inventory (
product_id INT PRIMARY KEY,
stock INT
);
-- 创建触发器
DELIMITER $$
CREATE TRIGGER update_inventory_after_insert
AFTER INSERT ON orders
FOR EACH ROW
BEGIN
UPDATE inventory
SET stock = stock - NEW.quantity
WHERE product_id = NEW.product_id;
END$$
DELIMITER ;
FOLLOWS
或 PRECEDES
关键字来控制触发器的执行顺序。通过以上内容,你应该对MySQL触发器有了全面的了解,包括其基本概念、优势、类型、应用场景以及可能遇到的问题和解决方法。
领取专属 10元无门槛券
手把手带您无忧上云