> 数据库 > MySQL >

mysql 数据库中定义存储过程(包含游标)

CREATE PROCEDURE pro_b_test ()
BEGIN
    DECLARE a_id VARCHAR(50); -- 需要定义接收游标数据的变量
    DECLARE a_name VARCHAR(50);

    DECLARE done INT DEFAULT 0;-- 设置游标的结束标识
    DECLARE cu_sc CURSOR FOR SELECT id,name FROM a_test;-- 定义游标
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;-- 游标结束标识

    OPEN cu_sc;-- 打开游标
        cursor_loop : LOOP-- 循环游标开始
                FETCH cu_sc INTO a_id,a_name;-- 把游标的值赋值给变量
                IF done = 1 THEN -- 结束条件
                LEAVE cursor_loop;
                END IF;
            INSERT INTO b_test (id,name) VALUES(a_id,a_name);-- 你自己的具体操作
        END LOOP cursor_loop;-- 循环游标结束
    CLOSE cu_sc;-- 关闭游标
END



(责任编辑:IT)