【发布时间】:2012-11-14 13:25:09
【问题描述】:
我来自前端背景,如果这个问题看起来很简单,请多多包涵。
我注意到大多数关于 MySQL 存储过程的帖子都使用 @ 作为变量。我知道这意味着该变量是一个会话变量,只要连接处于活动状态,它就会在存储过程中持续存在,但是为什么您希望一个变量在 1 个连接中交叉污染多个存储过程调用?将所有内容本地化不是更好吗?如果我不使用@,那么在下一次存储的proc 调用中,变量会重新初始化为NULL,这不是更可取吗?这样做是出于性能原因吗?
【问题讨论】:
-
why would you want one variable to cross-contaminate multiple stored proc calls within 1 connection我没明白。添加变量是如何做到的? -
@Ibu 我的意思是,如果在一个存储过程中,您执行 SET
@foo = "bar",那么在同一连接中的下一个存储过程中,@foo仍将设置为“bar "
标签: mysql