关于MYsql存储过程中游标的问题

tian210208 2015-12-02 11:14:13
mysql存储过程中游标使用完之后,使用 CLOSE 关闭游标后能不送用 DEALLOCATE 释放游标资源?
在sql server中能用 DEALLOCATE ,但是在mysql中好像不能?
有没有谁知道? 求帮助!
...全文
251 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxc210 2017-11-20
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
MYSQL中直接CLOSE就行了,剩下的交给系统。
请问可以对视图使用游标么
tian210208 2015-12-03
  • 打赏
  • 举报
回复
引用 5 楼 congya001 的回复:
楼主你好, 关闭游标 关闭游标后,游标区的数据不可再读。CLOSE语句关闭已打开的游标,之后不能对游标进行读取等操作,但可以使用OPEN语句再次打开该游标。 CLOSE语句的格式为: CLOSE 游标名 例如:关闭tcursor游标如下描述: CLOSE tcursor 6 删除游标语句 DEALLOCATE语句删除定义游标的数据结构,删除后不可再用。语句格式: DEALLOCATE 游标名 例如,删除tcursor游标 DEALLOCATE tcursor 如果你想释放资源的话,可以直接用DEALLOCATE
在mysql 中用DEALLOCATE 删除游标会报语法错误啊!是不是mysql的版本问题?我的是5.1.45
文修 2015-12-03
  • 打赏
  • 举报
回复
楼主你好, 关闭游标 关闭游标后,游标区的数据不可再读。CLOSE语句关闭已打开的游标,之后不能对游标进行读取等操作,但可以使用OPEN语句再次打开该游标。 CLOSE语句的格式为: CLOSE 游标名 例如:关闭tcursor游标如下描述: CLOSE tcursor 6 删除游标语句 DEALLOCATE语句删除定义游标的数据结构,删除后不可再用。语句格式: DEALLOCATE 游标名 例如,删除tcursor游标 DEALLOCATE tcursor 如果你想释放资源的话,可以直接用DEALLOCATE
tian210208 2015-12-03
  • 打赏
  • 举报
回复
引用 3 楼 u011575570 的回复:
[quote=引用 2 楼 tian210208 的回复:] 我的程序要求是这样的: 有存储过程 A 和 B ,执行存储过程 A 时会多次调用 B 在B 中定义了一个游标 指向一个视图,并通过游标取出 视图中的值, 每次调用 B 时都会对视图进行更新,但是游标取出的值还是第一次的数据, 我在想如果能够在 B 执行完后对游标进行 DEALLOCATE 的话, 下一次应该能取到更新后的数据。 在sql server 中是可以这样的。
你在B里将游标用了之后close,在调用B时游标的值应该是更新后的数值[/quote] 再次调用时依然是第一次的值。
rick-he 2015-12-02
  • 打赏
  • 举报
回复
引用 2 楼 tian210208 的回复:
我的程序要求是这样的: 有存储过程 A 和 B ,执行存储过程 A 时会多次调用 B 在B 中定义了一个游标 指向一个视图,并通过游标取出 视图中的值, 每次调用 B 时都会对视图进行更新,但是游标取出的值还是第一次的数据, 我在想如果能够在 B 执行完后对游标进行 DEALLOCATE 的话, 下一次应该能取到更新后的数据。 在sql server 中是可以这样的。
你在B里将游标用了之后close,在调用B时游标的值应该是更新后的数值
tian210208 2015-12-02
  • 打赏
  • 举报
回复
我的程序要求是这样的: 有存储过程 A 和 B ,执行存储过程 A 时会多次调用 B 在B 中定义了一个游标 指向一个视图,并通过游标取出 视图中的值, 每次调用 B 时都会对视图进行更新,但是游标取出的值还是第一次的数据, 我在想如果能够在 B 执行完后对游标进行 DEALLOCATE 的话, 下一次应该能取到更新后的数据。 在sql server 中是可以这样的。
ACMAIN_CHM 2015-12-02
  • 打赏
  • 举报
回复
MYSQL中直接CLOSE就行了,剩下的交给系统。

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧