drop procedure if exists aaa;
delimiter &&
create procedure `aaa`()
BEGIN
declare a,b varchar(20);
/* 设定一个游标循环结束的标识 */
DECLARE done INT DEFAULT 0;
/* 创建一个游标 */
declare c_bb cursor for select user,pass from t_old_user;
/* 定义 设置循环结束标识done值怎么改变的逻辑 */
/* Handler:消息处理模型/系统,使动作在不同的线程中被执行 */
/* 当done为true的场合,要去做什么事情;数据溢出的场合,结束循环用 */
declare continue HANDLER for not FOUND set done = 1;
/* 打开游标 */
open c_bb;
/* loop循环 */
aaaLoop : LOOP
fetch c_bb into a,b;
if done=1 then LEAVE aaaLoop;
else
insert into t_user_01 values (null, a, b);
end if;
end loop;
close c_bb;
end
&&
delimiter;
call aaa();