delimiter // -- 声明分隔符 create procedure proce_cursor() -- 声明存储结构 begin declare tmp_barcode varchar(50); -- 这个量用来存图书码 declare tmp_bookname varchar(50); -- 这个量用来存图书名 declare stop int default 0; -- 这个量用来存循环停止的变量值 declare tmp_price float default 0.0; -- 这个量用来存图书价格 declare bookcount int default 0; -- 这个量用来存图书的数量的 declare cursor_book cursor for select -- 声明游标的 barcode,bookname,price from tb_bookinfo where typeid = 4; declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop = 0; -- 把停止量初设为0 open cursor_book; -- 打开游标 select count(*) into bookcount from tb_bookinfo where typeid = 4; -- 找到有几本书 WHILE ( stop < bookcount) DO -- 如果停止量小于图书总数就循环 fetch cursor_book into tmp_barcode,tmp_bookname,tmp_price; -- 循环获取游标里存的值 select tmp_barcode,tmp_bookname,tmp_price; -- 把存的值显出来 set stop = stop + 1; -- 最后让停止量加一 end while; close cursor_book; end //