在MySQL中,INOUT
参数用于在存储过程和函数中传递值
以下是一个简单的示例,演示了如何在MySQL存储过程中使用INOUT
参数:
DELIMITER //
CREATE PROCEDURE AddNumbers(IN num1 INT, IN num2 INT, INOUT sum INT)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
SELECT 'An error occurred while adding numbers.';
END;
START TRANSACTION;
SET sum = num1 + num2;
COMMIT;
END //
DELIMITER ;
在这个示例中,我们创建了一个名为AddNumbers
的存储过程,它接受两个输入参数(num1
和num2
)和一个输入/输出参数(sum
)。我们使用DECLARE EXIT HANDLER
语句定义了一个错误处理程序,当发生SQLEXCEPTION
时,它将回滚事务并返回一条错误消息。在正常情况下,我们将num1
和num2
相加,并将结果存储在sum
变量中。
要调用此存储过程,可以使用以下命令:
SET @num1 = 5;
SET @num2 = 3;
SET @sum = 0;
CALL AddNumbers(@num1, @num2, @sum);
SELECT @sum;
这将返回8
作为sum
的值。如果在执行过程中发生错误,将触发错误处理程序并返回相应的错误消息。