<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國際加速解決方案。 廣告
                cursor 游標 Cursor游標用來聲明一個數據集 游標的聲明必須在變量和條件聲明之后,在handler聲明之前 ``` CREATE PROCEDURE curdemo() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE a CHAR(16); DECLARE b, c INT; DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1; DECLARE cur2 CURSOR FOR SELECT i FROM test.t2; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur1; OPEN cur2; read_loop: LOOP FETCH cur1 INTO a, b; FETCH cur2 INTO c; IF done THEN LEAVE read_loop; END IF; IF b < c THEN INSERT INTO test.t3 VALUES (a,b); ELSE INSERT INTO test.t3 VALUES (a,c); END IF; END LOOP; CLOSE cur1; CLOSE cur2; END; ``` 解釋: - [ ] Cursor close語句用來關閉之前打開的游標,如果關閉一個未打開的游標,則MySQL會報錯。如果在存儲過程和函數中未使用此語句關閉已經打開的游標,則游標會在聲明的begin…end語句塊執行完之后自動關閉 - [ ] Cursor declare語句用來聲明一個游標和指定游標對應的數據集合,通常數據集合是一個select語句 - [ ] Cursor fetch語句用來獲取游標指定數據集的下一行數據并將各個字段值賦予后面的變量 - [ ] 數據集中的字段需要和INTO語句中定義的變量一一對應 - [ ] 數據集中的數據都fetch完之后,則返回NOT FOUND - [ ] Open cursor語句用來打開一個之前已經聲明好的游標 - [ ] Declare condition語句命名特定的錯誤條件,而該特定錯誤可以在declare…handler中指定處理方法 - [ ] declare condition_name condition for condition_value - [ ] Condition_value指定特定的錯誤條件,可以有以下兩種形式 - [x] Mysql_err_code表示MySQL error code的整數 - [x] SQLSTATE sqlstate_value表示MySQL中用5位字符串表達的語句狀態 ``` DECLARE {EXIT | CONTINUE} HANDLER FOR {error-number | SQLSTATE error-string | condition} SQL statement ``` - [ ] Handler Type (CONTINUE,EXIT)//處理類型 繼續或退出 - [ ] Handler condition (SQLSTATE,MYSQL ERROR,CONDITION)//觸發條件 - [ ] Handler actions(錯誤觸發的操作) - [ ] Handler_action子句聲明當執行完statement語句之后應該怎么辦 - [ ] Continue代表繼續執行該存儲過程或函數 - [ ] Exit代表退出聲明此handler的begin…end語句塊 Condition_value的值有以下幾種: - [x] Mysql_err_code表示MySQL error code的整數 - [x] SQLSTATE sqlstate_value表示MySQL中用5位字符串表達的語句狀態 - [x] Condition_name表示之前在declare…condition語句中聲明的名字 - [x] SQLWARNING表示所有的警告信息,即SQLSTATE中01打頭的所有錯誤 - [x] NOT FOUND表示查完或者查不到數據,即SQLSTATE中02打頭的所有錯誤 - [x] SQLEXCEPTION表示所有的錯誤信息 當condition發生但沒有聲明handler時,則存儲過程和函數依照如下規則處理 - [ ] 發生SQLEXCEPTION錯誤,則執行exit退出 - [ ] 發生SQLWARNING警告,則執行contine繼續執行 - [ ] 發生NOT FOUND情況,則執行continue繼續執行 比如SQLSTATE ‘23000’表示主鍵沖突錯誤 ``` mysql> CREATE TABLE t (s1 INT, PRIMARY KEY (s1)); Query OK, 0 rows affected (0.00 sec) mysql> delimiter // mysql> CREATE PROCEDURE handlerdemo () -> BEGIN -> DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2 = 1; -> SET @x = 1; -> INSERT INTO test.t VALUES (1); -> SET @x = 2; -> INSERT INTO test.t VALUES (1); -> SET @x = 3; -> END; -> // Mysql> delimiter ; mysql> CALL handlerdemo(); mysql> SELECT @x; +------+ | @x | +------+ | 3 | +------+ 1 row in set (0.00 sec) ```
                  <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>

                              哎呀哎呀视频在线观看