【问题标题】:Difference between declare @variablename and declare variablename while working with stored procedures使用存储过程时声明 @variablename 和声明变量名之间的区别
【发布时间】:2014-08-01 12:58:57
【问题描述】:

我想知道@variablenamevariablename 有什么区别。所有的帮助将不胜感激。

【问题讨论】:

标签: mysql database stored-procedures


【解决方案1】:
variablename

局部变量

局部变量在存储过程中声明,并且仅在声明它们的 BEGIN...END 块中有效。局部变量可以是任何 SQL 数据类型。

@variablename

用户变量

在 MySQL 存储过程中,用户变量使用与用户变量名称前缀的 & 符号 (@) 引用(例如,@x 和 @y)。您可以在一个语句中将值存储在用户定义的变量中,然后稍后在另一个语句中引用它。这使您能够将值从一个语句传递到另一个语句。用户定义的变量是特定于会话的。也就是说,一个客户端定义的用户变量不能被其他客户端看到或使用。当客户端退出时,给定客户端会话的所有变量都会自动释放。

在 MySQL 中,变量 var1 和 @var1 是两个不同的东西。 @var1 是一个用户会话变量,在活动会话期间保持不变。另一个是存储过程的本地。

【讨论】:

    猜你喜欢
    • 2012-11-28
    • 2015-07-29
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    相关资源
    最近更新 更多