首页  >  文章  >  数据库  >  MySQL 存储过程使用 REPEAT 来打开游标读取数据

MySQL 存储过程使用 REPEAT 来打开游标读取数据

WBOY
WBOY原创
2016-06-07 14:54:271431浏览

无详细内容 游标 MySQL mysqlmysqlmysql delimiter $$mysql CREATE PROCEDURE myProc (in_customer_id INT) - BEGIN - - DECLARE l_first_name VARCHAR(30); - DECLARE l_id INT; - DECLARE l_city VARCHAR(30); - DECLARE l_department_count INT; - DECLARE

游标 MySQL
mysql>
mysql>
mysql> delimiter $$
mysql> CREATE PROCEDURE myProc (in_customer_id INT)
    -> BEGIN
    ->
    ->      DECLARE l_first_name  VARCHAR(30);
    ->      DECLARE l_id          INT;
    ->      DECLARE l_city        VARCHAR(30);
    ->      DECLARE l_department_count INT;
    ->      DECLARE no_more_departments INT;
    ->
    ->      DECLARE dept_csr CURSOR FOR
    ->           SELECT id,first_name, city
    ->             FROM employee;
    ->
    ->      DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;
    ->
    ->      SET no_more_departments=0;
    ->      OPEN dept_csr;
    ->      dept_loop:REPEAT
    ->           FETCH dept_csr INTO l_id,l_first_name,l_city;
    ->               IF no_more_departments=0 THEN
    ->                 SET l_department_count=l_department_count+1;
    ->               END IF;
    ->           select  l_id,l_first_name,l_city;
    ->      UNTIL no_more_departments
    ->      END REPEAT dept_loop;
    ->      CLOSE dept_csr;
    ->      SET no_more_departments=0;
    ->
    ->
    -> END$$
Query OK, 0 rows affected (0.00 sec)
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn