mysql 游標巢狀使用

2021-07-24 18:44:52 字數 1267 閱讀 2372

解決方案:

從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...