1. 程式人生 > >MySQL--遊標使用程式碼筆記

MySQL--遊標使用程式碼筆記

mysql> select * from testB;
+----+
| id |
+----+
|  0 |
|  2 |
|  4 |
+----+
3 rows in set (0.00 sec)

mysql> delimiter $$
mysql> create procedure pro_test8(out rows int)      //out輸出結果的引數
    -> begin
    -> declare cid int;                              //宣告cid幫忙計數
    -> declare found boolean default true;           //宣告bool變數值,預設為真
    -> declare cur_cid cursor for                    //宣告遊標
    -> select id from testB;
    -> declare continue handler for not found
    -> set found = false;      //定義CONTINUE HANDLER控制代碼作用是:如果沒有返回值就設定為false
    -> set rows = 0;           //此句之前均為宣告
    -> open cur_cid;
    -> fetch cur_cid into cid;
    -> while found do
    -> set rows = rows + 1;
    -> fetch cur_cid into cid;
    -> end while;
    -> close cur_cid;
    -> end $$
Query OK, 0 rows affected (0.00 sec)

mysql> call pro_test8(@rows) $$
Query OK, 0 rows affected, 1 warning (0.69 sec)

mysql> select @rows $$
+-------+
| @rows |
+-------+
|     3 |
+-------+
1 row in set (0.00 sec)

mysql> call pro_test8(@row) $$
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> select @row $$
+------+
| @row |
+------+
|    3 |
+------+
1 row in set (0.00 sec)