在 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);
如果傳入的參數滿足存儲過程中的條件,則不會拋出任何異常。否則,將拋出自定義的異常,并返回錯誤代碼和消息。