对mysql的存储过程中循环读取数据表的对象,用游标可以实现。
那么什么是游标啊?
游标是系统为用户开设的一个数据缓冲区,存放sql语句的执行结果。每个游标区都有一个名字。用户可以用sql语句逐一从游标中获取记录,并赋给主变量,交给主语言进一步处理。主语言是面向记录的,一组主变量一次只能存放一条记录。游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条sql选择语句相关联因为游标由结果集(可以是零条,一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。
游标的类型:
1)transact_sql游标
transact_sql游标是declare cursor语法定义,主要用在transact_sql脚本,存储过程和触发器中。
transact_sql游标主要用在服务器上,由客户端发送给服务器的transact_sql语句或是批处理,存储
过程,触发器中的transact_sql进行管理。它不支持提取数据块或多行数据。
2)API服务器游标
API游标支持在oledb,odbc以及db_library中使用的游标函数,主要用在服务器上。每次客户端
应用程序调用API游标函数,mysql sever的oledb提供者,odbc驱动器或db_library的动态链接库(DLL
)都会将这些客户请求传送给服务器以对API游标进行处理。
3)客户游标
客户游标主要是当在客户机上缓存结果集时才使用,有一个缺省的结果集被用来在客户机上缓存整
个结果集。
这三种游标是sql支持的
如何使用游标?
首先应该定义游标:游标名 cursor for 游标使用的sql语句
再者就是打开游标:open 游标名
第三就是获取游标内容:fetch 游标名 into 已定义好的变量
最后就是关闭游标:close 游标名