zoukankan      html  css  js  c++  java
  • Mysql游标的简明写法

    -- cursor 游标
    /*
    declare 声明; declare 游标名 cursor for select_statement;
    open 找开; open 游标名
    fetch 取值; fetch 游标名 into var1,var2,var3[,...]
    close 关闭; close 游标名;
    */
    create procedure p12()
    begin
    declare row_gid int;
    declare row_num int;
    declare row_name varchar(20);

    declare getgoods cursor for select gid,num,name from goods;

    open getgoods;
    fetch getgoods into row_gid,row_num,row_name;
    select row_num,row_name;
    close getgoods;
    end;

    create procedure p13()
    begin
    declare cnt int default 0;
    declare i int default 0 ;
    declare row_gid int;
    declare row_num int;
    declare row_name varchar(20);

    declare getgoods cursor for select gid,num,name from goods;

    select count(*) into cnt from goods;

    open getgoods;

    repeat
    set i := i+1;
    fetch getgoods into row_gid,row_num,row_name;
    select row_num,row_name;
    until i>=cnt end repeat;

    close getgoods;
    end;

    --利用标误码来结束循环
    --在mysql cursor中,可以把declare continue handler来操作1个越界标识
    /*
    declare continue handler for not found 语句;
    */
    create procedure p14()
    begin
    declare row_gid int;
    declare row_num int;
    declare row_name varchar(20);
    declare flag int default 1; --标识

    declare getgoods cursor for select gid,num,name from goods;

    declare continue handler for NOT FOUND set flag := 0;

    open getgoods;

    repeat
    if flag!=0 then
    fetch getgoods into row_gid,row_num,row_name;
    select row_num,row_name;
    end if;
    until flag=0 end repeat;
    close getgoods;
    end;

  • 相关阅读:
    Oracle11以后的行列转换
    stream重复Key的处理
    EasyUI笔记(一)Base基础
    jQuery笔记(六)jQuery之Ajax
    【jQuery实例】Ajax登录页面
    jQuery笔记(五)jQuery表单验证
    jQuery笔记(四)jQuery中的动画
    jQuery笔记(三)jQuery中的事件
    jQuery笔记(二)jQuery中DOM操作
    jQuery笔记(一)jQuery选择器
  • 原文地址:https://www.cnblogs.com/ahwu/p/3630352.html
Copyright © 2011-2022 走看看