MySQL 8.4 版本說明
DECLARE condition_name CONDITION FOR condition_value
condition_value: {
mysql_error_code
| SQLSTATE [VALUE] sqlstate_value
}
DECLARE ... CONDITION
陳述式宣告一個已命名的錯誤條件,將名稱與需要特定處理的條件關聯。該名稱可以在後續的 DECLARE ... HANDLER
陳述式中引用(請參閱第 15.6.7.2 節,「DECLARE ... HANDLER 陳述式」)。
條件宣告必須出現在游標或處理常式宣告之前。
DECLARE ... CONDITION
的 condition_value
指示要與條件名稱關聯的特定條件或條件類別。它可以採用以下形式
在 SIGNAL
中引用或使用 RESIGNAL
陳述式所引用的條件名稱,必須與 SQLSTATE 值關聯,而不是 MySQL 錯誤代碼。
使用條件的名稱可以幫助使儲存的程式碼更清晰。例如,此處理常式適用於嘗試刪除不存在的資料表,但只有當您知道 1051 是 MySQL 錯誤代碼(表示 「未知的資料表」)時才顯而易見。
DECLARE CONTINUE HANDLER FOR 1051
BEGIN
-- body of handler
END;
透過宣告條件的名稱,可以更容易地看出處理常式的用途
DECLARE no_such_table CONDITION FOR 1051;
DECLARE CONTINUE HANDLER FOR no_such_table
BEGIN
-- body of handler
END;
以下是相同條件的已命名條件,但它基於相應的 SQLSTATE 值,而不是 MySQL 錯誤代碼
DECLARE no_such_table CONDITION FOR SQLSTATE '42S02';
DECLARE CONTINUE HANDLER FOR no_such_table
BEGIN
-- body of handler
END;