MySQL 存储过程是一组预先编译好的 SQL 语句,它们被存储在数据库中,可以通过调用执行。存储过程可以接受参数,这些参数可以在调用时传递值,从而实现灵活的数据操作。
MySQL 存储过程支持两种传值方式:
以下是一个简单的 MySQL 存储过程示例,演示了如何使用 IN 和 OUT 参数:
DELIMITER //
CREATE PROCEDURE GetTotalPrice(IN quantity INT, OUT totalPrice DECIMAL(10, 2))
BEGIN
DECLARE unitPrice DECIMAL(10, 2) DEFAULT 10.00; -- 假设单价为 10.00
SET totalPrice = unitPrice * quantity;
END //
DELIMITER ;调用存储过程并获取结果:
SET @quantity = 5;
CALL GetTotalPrice(@quantity, @totalPrice);
SELECT @totalPrice;在这个例子中,GetTotalPrice 存储过程接受一个 IN 参数 quantity 和一个 OUT 参数 totalPrice。调用者传递商品数量给存储过程,存储过程计算总价并将其返回给调用者。
MySQL 存储过程在以下场景中非常有用: