解決方案:
從a表取乙個欄位的值和從b表取乙個欄位的值一一組合作為插入資料來源。
drop procedure if exists test_team_user;
create procedure test_team_user()
begin
declare done int default 0;
declare userid varchar(32);
declare teamid varchar(32);
declare id int default 100;
/*宣告乙個游標*/
declare c_userid cursor for select user_id from sys_user where account like 'dor%'or account like 'nur%';
/* 異常處理 */
declare continue handler for sqlstate '02000' set done=1;
/*開啟游標*/
open c_userid;
while done<>1 do
fetch c_userid into userid;
begin
declare inner_done int default 0;
/*宣告乙個游標*/
declare c_teamid cursor for select team_id from sys_team;
/* 異常處理 */
declare continue handler for sqlstate '02000' set inner_done=1;
open c_teamid;
/*迴圈插入資料*/
while inner_done<>1 do
fetch c_teamid into teamid;
insert into `sys_team_user` (`id`, `team_id`, `user_type`, `user_id`, `join_time`, `join_status`) values (id, teamid, '1', userid, '2016-10-26 17:45:45', '1');
set id=id+1;
end while;
/*關閉游標*/
close c_teamid;
end;
end while;
/*關閉游標*/
close c_userid;
end;
mysql游標巢狀迴圈例子
create procedure finance recivedetail customer id varchar 20 begin declare done int default 0 declare id a bigint declare pre recv remain a decimal 12...
關於游標巢狀
游標巢狀使用時,fetch status的值有時會從內部游標影響到外部的游標,使外部的游標只迴圈一次。這時要檢查游標的使用方法。要先移動游標,然後就開始判斷,為真進行進行業務邏輯處理,然後移動游標,這樣就沒問題了。示例如下 declare 外層游標 open 外層游標 fetch next 提取外層...
Mysql游標使用
時間有限,就直接上案例了,簡潔明瞭 實現功效 1 定義乙個游標,查詢出乙個列表賦值給游標 2 迴圈遍歷游標,將游標每行資料插入另外乙個表的操作 delimiter use euniversity drop procedure if exists test create definer root lo...