寫了乙個簡單的對多游標控制的儲存過程

2021-09-03 06:39:29 字數 1719 閱讀 4971

寫了乙個簡單的對多游標控制的儲存過程。

此例是示範游標的具體使用方法。

不過生產過程中不推薦使用游標。因為完全可以用into 變數語句和迴圈來代替游標。

1、sp **:

delimiter $$

drop procedure if

exists `test2`.

`sp_cur_demo`$$

create definer=

`root`@

`localhost` procedure `sp_cur_demo`(

)begin

-- variants declare

declare i int default 0;

declare cnt int default 0;

declare a,b int;

declare c char

(1);

-- define cursor

-- notice:cursor's declaration must be after ordinary variant.

declare cur1 cursor for

select a1 from t1;

declare cur2 cursor for

select a2 from t1;

declare cur3 cursor for

select a3 from t1;

-- fetch total number of the table.

select

count

(1)from t1 into cnt;

drop

table tmp;

-- create a temporary table to store the results.

create temporary table

ifnot

exists tmp(cur_c1 int, cur_c2 int,cur_c3 char

(1))

;open cur1;

open cur2;

open cur3;

-- begin fetch data into a new temporary table.

while i < cnt do

fetch cur1 into a;

fetch cur2 into b;

fetch cur3 into c;

insert

into tmp select a,b,c;

set i = i + 1;

end while;

close cur1;

close cur2;

close cur3;

end$

$delimiter ;

2、測試結果:

select

*from t1;

call sp_cur_demo();

select

*from tmp;

a1a2a31

1a22

b32c

42d5

3e63

f74g

cur_c1

cur_c2

cur_c311

a22b

32c4

2d53

e63f74g

寫了乙個簡單的對多游標控制的儲存過程

寫了乙個簡單的對多游標控制的儲存過程。此例是示範游標的具體使用方法。不過生產過程中不推薦使用游標。因為完全可以用into 變數語句和迴圈來代替游標。1 sp delimiter drop procedure if exists test2 sp cur demo create definer roo...

寫了乙個簡單的對多游標控制的儲存過程

寫了乙個簡單的對多游標控制的儲存過程。此例是示範游標的具體使用方法。不過生產過程中不推薦使用游標。因為完全可以用into 變數語句和迴圈來代替游標。1 sp delimiter drop procedure if exists test2 sp cur demo create definer roo...

簡單的寫了乙個列印Lua Table的函式

簡單的寫了乙個將lua table 列印成json的格式,當然這個函式還是有點bug的,就是不能區分 同時存在陣列和key vlaue,如 local test 會被當做陣列處理,由於專案中沒有匯入json庫,不能使用json.encode 所以自己隨便了乙個,基本上滿足需求,後面也就沒有管了,如果...