在 MySQL 中,您可以使用 SIGNAL SQLSTATE
语句来抛出一个自定义的异常。下面是一个示例:
DELIMITER //
CREATE PROCEDURE my_procedure(IN input_value INT)
BEGIN
IF input_value < 0 THEN
-- 抛出一个自定义的异常,带有错误代码和消息
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = '输入值不能为负数';
ELSE
SELECT input_value;
END IF;
END //
DELIMITER ;
在上面的示例中,如果输入值小于 0,则存储过程将抛出一个自定义的异常,带有错误代码 45000
和消息 '输入值不能为负数'
。
CALL my_procedure(-1);
如果传入的参数满足存储过程中的条件,则不会抛出任何异常。否则,将抛出自定义的异常,并返回错误代码和消息。