mysql声明declare_mysql8 参考手册--DECLARE ... CONDITION声明
DECLARE condition_name CONDITION FOR condition_value
condition_value: {
mysql_error_code
| SQLSTATE [VALUE] sqlstate_value
}
該DECLARE ... CONDITION語句聲明一個命名錯誤條件,將名稱與需要特定處理的條件相關聯。可以在后續DECLARE ... HANDLER語句中引用該名稱 (請參見 第13.6.7.2節“ DECLARE ... HANDLER語句”)。
條件聲明必須出現在游標或處理程序聲明之前。
該condition_value用于 DECLARE ... CONDITION指示特定條件或類的條件與狀況名合伙人。它可以采用以下形式:
mysql_error_code:整數文字,指示MySQL錯誤代碼。
不要使用MySQL錯誤代碼0,因為這表示成功而不是錯誤情況。有關MySQL錯誤代碼的列表,請參見第B.3.1節“服務器錯誤消息參考”。
SQLSTATE [VALUE] sqlstate_value:5個字符的字符串文字,指示SQLSTATE值。
不要使用以開頭的SQLSTATE值, '00'因為它們表示成功而不是錯誤情況。有關SQLSTATE值的列表,請參見第B.3.1節“服務器錯誤消息參考”。
引用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;
總結
以上是生活随笔為你收集整理的mysql声明declare_mysql8 参考手册--DECLARE ... CONDITION声明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真无线也玩RGB灯效!魅族 PANDAE
- 下一篇: centos7 安装redis_Redi