<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                轉載自:https://blog.csdn.net/weixin_42364301/article/details/113441294 **** **1. 什么是處理程序** 處理程序可以預測程序執行過程中可能出現的問題,并給出相應的解決辦法。 <br/> **2. 定義處理程序的語法** ```sql DECLARE handler_type HANDLER FOR condtion_value[,...] sp_statement - handler_type:錯誤處理方式,有3個可選則 - CONTINUE:表示遇到錯誤不處理,繼續執行 - EXIT:表示遇到錯誤馬上退出 - UNDO:表示遇到錯誤后,撤銷之前的所有操作,MysqL中,暫時不支持這樣的操作 - sp_statement:遇到錯誤后需要執行的存儲過程 - condition_value:錯誤類型,有6個可選值 - SQLSTATE sqlstate_value:包含5個字符的字符串錯誤值 - condition_name:自定義的錯誤條件名稱 - sqlWARNING:匹配所有以01開頭的sqlSTATE錯誤代碼 - NOT FOUND:匹配所有以02開頭的sqlSTATE錯誤代碼 - sqlEXCEPTION:匹配所有沒有被sqlWARNING或NOT FOUND捕獲的sqlSTATE錯誤代碼 - MysqL_error_code:匹配數值類型錯誤代碼 ``` <br/> **3. 6種錯誤類型的處理程序** ```sql # SQLSTATE value_ # 如果遇到value_值為42S02,則執行CONTINUE操作,并定義一個用戶變量@info DECLARE CONTINUE HANDLER FOR sqlSTATE '42S02' SET @info='NO_SUCH_TABLE'; # MysqL_error_code # 如果遇到MysqL_error_code值為1146,則執行CONTINUE操作,并定義一個用戶變量@info DECLARE CONTINUE HANDLER FOR 1146 SET @info='NO_SUCH_TABLE'; # condition_name # 先定義條件,然后再調用條件 # 這里先定義no_such_table條件,遇到1146錯誤,就執行CONTINUE操作 DECLARE no_such_table CONDITION FOR 1146; DECLARE CONTINUE HANDLER FOR no_such_table SET @info='ERROR'; # sqlWARNING # 捕獲所有以01開頭的錯誤代碼,然后執行EXIT操作,并定義一個用戶變量@info DECLARE EXIT HANDLER FOR sqlWARNING SET @info='ERROR'; # NOT FOUND # 捕獲所有以02開頭錯誤代碼,然后執行EXIT操作,并定義一個用戶變量@info DECLARE EXIT HANDLER FOR NOT FOUND SET @info='NO_SUCH_TABLE'; # sqlEXCEPTION # 捕獲所有沒有被sqlWARNING或NOT FOUND捕獲的錯誤代碼,然后執行EXIT操作,并定義一個用戶變量@info DECLARE EXIT HANDLER FOR sqlEXCEPTION SET @info='ERROR'; ``` <br/> **4. 演示** ```sql mysql> delimiter $ mysql> create procedure handler() -> begin -> declare continue handler for sqlstate '23000' set @result='0'; -> -- id為1的鍵已存在,所以這里會報錯 -> insert into account values(1, '趙六', 'zhaoliu'); -> set @result = '1'; -> insert into account values(4, '田七', 'tianqi'); -> set @result = '2'; -> end $ mysql> call handler() $ # 等于2,說明遇到錯誤了還是繼續往下執行 mysql> select @result $ +---------+ | @result | +---------+ | 2 | +---------+ ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看