调用MySql带有返回参数的存储过程,获取返回参数值?

无幻 2011-10-17 11:35:59
直接用查询语句的方法是:
mysql> SET @increment = 10;
mysql> CALL p(@version, @increment);
mysql> SELECT @version, @increment;

怎么样保证在并发时,获取的输出参数是正确的呢?
...全文
497 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
聪明的一休 2011-10-20
  • 打赏
  • 举报
回复
用事务的话,可以判断返回值,如果有问题,可以回滚刚才的存储过程操作,让数据复原。

如果你用独立的数据库连接的话,这和并发一点关系都没有。
九月茅 2011-10-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 akof1314 的回复:]
那照上面的情况,以事务方式可以解决不?
[/Quote]

可以解决你的问题的。
聪明的一休 2011-10-20
  • 打赏
  • 举报
回复
关键的一点,不管在什么编程语言里,多线程处理数据库操作,一个线程单独用一个数据库连接,完成操作后立即释放,这样就不需要担心类似的并发问题了

如果线程很多的话,一般都是通过实现数据库连接池来解决大并发的问题。
无幻 2011-10-20
  • 打赏
  • 举报
回复
两句有办法合成一句吗
ACMAIN_CHM 2011-10-20
  • 打赏
  • 举报
回复
解决不了,同一个连接内,只能是一个事务。
ACMAIN_CHM 2011-10-17
  • 打赏
  • 举报
回复
@变量是SESSION级的,不同SESSION中不会相互影响。
rucypli 2011-10-17
  • 打赏
  • 举报
回复
数据库有个叫事务的东西
无幻 2011-10-17
  • 打赏
  • 举报
回复
那照上面的情况,以事务方式可以解决不?
ChumpKlutz 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 akof1314 的回复:]

谢谢回答。

若是在编程语言中呢,不同多线程的查询控件,通过同一个连接数据库控件,是可能出现获取输出参数的不正确吗?
[/Quote]

同一个数据库连接就是一个SESSION
无幻 2011-10-17
  • 打赏
  • 举报
回复
谢谢回答。

若是在编程语言中呢,不同多线程的查询控件,通过同一个连接数据库控件,是可能出现获取输出参数的不正确吗?

56,942

社区成员

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

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