MySQL--遊標使用程式碼筆記
阿新 • • 發佈:2018-11-11
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)