MySQL 9.0 發行說明
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 錯誤代碼,表示「unknown table」時才明顯。
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;