今日用到了mysql,於是對其游標調查了一番,感覺和oracle的用法大同小異。下面是個小例子。
1.建立procedure。
create myproc()
begin
declare selyear varchar(4);
declare starttime datetime;
declare cur1 cursor for (select start_year from testtable);
#這點需要注意
#mysql 需要用異常來判斷是否迴圈終了。
#異常時,把變數selyear設為 null 跳出迴圈。
#類似oracle的 no_data_found
declare continue handler for sqlstate '02000' set selyear = null;
#開始時間
set starttime = now();
open cur1;
fetch cur1 into selyear;
while(selyear is not null) do
#可以在這裡做一些動作
fetch cur1 into selyear;
end while;
close cur1;
#檢視執行時間
select now() - starttime;
end2.呼叫方法
call myproc();
另:我用終端mysqlquerybrowser新建乙個script,想除錯一下,但除錯不通過。報語法異常,可能是不支援該用法,也可能是我用法不對,沒有深究。
MYSQL使用游標
一 使用游標 一 宣告游標。delare cursor name cursor for select statement 解釋 cursor name是游標的名字 select statement表示select語句。因為游標需要遍歷結果集的每一行,增加了伺服器的負擔,導致游標的效率並不高效,如果使...
mysql中使用游標
sql view plain copy set max sp recursion depth 100 下面是mysql遞迴呼叫的源 sql view plain copy dropdelimiter createin uidvarchar 225 in ncountint begin declare...
MySQL之使用游標
mysql檢索操作返回一組成為結果集的行。使用簡單的select語句,例如,沒有辦法得到第一行 下一行或前10行,也不存在每次一行的處理所有行的簡單辦法。有時,需要再檢索出來的行中前進或後退一行或多行。這就是使用游標的原因。mysql游標只能用於儲存過程 和函式 建立游標 delimiter cre...