使用 LOOP 和 FETCH 来读取 MySQL 游标
时间:2016-05-26 13:50 来源:linux.it.net.cn 作者:IT
mysql>
mysql> delimiter $$
mysql> CREATE PROCEDURE myProc()
-> BEGIN
-> DECLARE l_sale_id INT;
-> DECLARE l_last_sale INT DEFAULT 0;
->
-> DECLARE sale_csr CURSOR FOR
-> SELECT id
-> FROM employee;
->
-> DECLARE CONTINUE HANDLER FOR NOT FOUND SET l_last_sale=1;
->
-> OPEN sale_csr;
-> sale_loop:LOOP
-> FETCH sale_csr INTO l_sale_id;
-> IF l_last_sale THEN
-> LEAVE sale_loop;
-> END IF;
-> select l_sale_id;
-> END LOOP sale_loop;
-> CLOSE sale_csr;
->
-> END$$
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> delimiter ;
mysql> call myProc();
(责任编辑:IT)
mysql> mysql> delimiter $$ mysql> CREATE PROCEDURE myProc() -> BEGIN -> DECLARE l_sale_id INT; -> DECLARE l_last_sale INT DEFAULT 0; -> -> DECLARE sale_csr CURSOR FOR -> SELECT id -> FROM employee; -> -> DECLARE CONTINUE HANDLER FOR NOT FOUND SET l_last_sale=1; -> -> OPEN sale_csr; -> sale_loop:LOOP -> FETCH sale_csr INTO l_sale_id; -> IF l_last_sale THEN -> LEAVE sale_loop; -> END IF; -> select l_sale_id; -> END LOOP sale_loop; -> CLOSE sale_csr; -> -> END$$ Query OK, 0 rows affected (0.00 sec) mysql> mysql> delimiter ; mysql> call myProc(); (责任编辑:IT) |