已经有表tablea:a(主键) b c,有另外一张原始表tableb: d(主键)e fd e f a b c
1 2 3 null null null
1 2 3
1 2 3我的sql如下begin
declare v_a text;
declare v_b text;
declare v_c text;
declare done int;
declare cursor for select * from table;
declare continue handler for sqlstate '02000' set done = 1;
open cursor ;
repeat
fetch cursor into v_a,v_b,v_c;
insert tablea (a,b,c) values (v_a,v_b,v_c);
until done end repeat;
close cursor;
end
1 2 3 null null null
1 2 3
1 2 3我的sql如下begin
declare v_a text;
declare v_b text;
declare v_c text;
declare done int;
declare cursor for select * from table;
declare continue handler for sqlstate '02000' set done = 1;
open cursor ;
repeat
fetch cursor into v_a,v_b,v_c;
insert tablea (a,b,c) values (v_a,v_b,v_c);
until done end repeat;
close cursor;
end
看看结果,已经提示,主键重复
实际上b表的结构是 d e f
1 2 3
2 2 3
3 2 3
declare v_a text;
declare v_b text;
declare v_c text;
declare done int;
declare cursor for select * from table;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
open cursor ;
fetch cursor into v_a,v_b,v_c;
WHILE done=0 DO
insert tablea (a,b,c) values (v_a,v_b,v_c);
fetch cursor into v_a,v_b,v_c;
END WHILE;
close cursor;
end
open cursor ;
fetch cursor into v_a,v_b,v_c;
repeat
insert tablea (a,b,c) values (v_a,v_b,v_c);
fetch cursor into v_a,v_b,v_c;
until done end repeat;