delimiter //
create procedure insert_A_from_B(in param varchar(36)) //需要声明接收参数的类型以及长度
begin
declare field_B varchar(36);
declare no_more_found int; //定义游标中止变量
declare cursor_B cursor for select id from table_b;
open cursor_B;
repeat
fetch cursor_B into field_B;
insert into table_a(name,b_refer) values(param,field_B);
until no_more_found end repeat; //游标遍历结束
close cursor_B;
end //
create procedure insert_A_from_B(in param varchar(36)) //需要声明接收参数的类型以及长度
begin
declare field_B varchar(36);
declare no_more_found int; //定义游标中止变量
declare cursor_B cursor for select id from table_b;
declare continue handler for not found set no_more_found=1;
//在Mysql里当游标遍历溢出时,会出现一个预定义的NOT FOUND的Error,处理这个Error并定义一个continue的handler就可以了
set no_more_found=0;open cursor_B;
repeat
fetch cursor_B into field_B;
insert into table_a(name,b_refer) values(param,field_B);
until no_more_found end repeat; //游标遍历结束
close cursor_B;
end //