mysql声明declare_mysql8 参考手册--DECLARE ... CONDITION声明
DECLARE condition_name CONDITION FOR condition_value
condition_value: {
mysql_error_code
| SQLSTATE [VALUE] sqlstate_value
}
該DECLARE ... CONDITION語句聲明一個命名錯誤條件,將名稱與需要特定處理的條件相關(guān)聯(lián)。可以在后續(xù)DECLARE ... HANDLER語句中引用該名稱 (請參見 第13.6.7.2節(jié)“ DECLARE ... HANDLER語句”)。
條件聲明必須出現(xiàn)在游標(biāo)或處理程序聲明之前。
該condition_value用于 DECLARE ... CONDITION指示特定條件或類的條件與狀況名合伙人。它可以采用以下形式:
mysql_error_code:整數(shù)文字,指示MySQL錯誤代碼。
不要使用MySQL錯誤代碼0,因?yàn)檫@表示成功而不是錯誤情況。有關(guān)MySQL錯誤代碼的列表,請參見第B.3.1節(jié)“服務(wù)器錯誤消息參考”。
SQLSTATE [VALUE] sqlstate_value:5個字符的字符串文字,指示SQLSTATE值。
不要使用以開頭的SQLSTATE值, '00'因?yàn)樗鼈儽硎境晒Χ皇清e誤情況。有關(guān)SQLSTATE值的列表,請參見第B.3.1節(jié)“服務(wù)器錯誤消息參考”。
引用SIGNAL或使用 RESIGNAL語句中的條件名稱 必須與SQLSTATE值關(guān)聯(lián),而不是與MySQL錯誤代碼關(guān)聯(lián)。
使用名稱作為條件可以幫助使存儲的程序代碼更清晰。例如,此處理程序適用于嘗試刪除不存在的表的情況,但是只有當(dāng)您知道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;
這是相同條件的命名條件,但是基于相應(yīng)的SQLSTATE值而不是MySQL錯誤代碼:
DECLARE no_such_table CONDITION FOR SQLSTATE '42S02';
DECLARE CONTINUE HANDLER FOR no_such_table
BEGIN
-- body of handler
END;
總結(jié)
以上是生活随笔為你收集整理的mysql声明declare_mysql8 参考手册--DECLARE ... CONDITION声明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真无线也玩RGB灯效!魅族 PANDAE
- 下一篇: centos7 安装redis_Redi