[英]MySQL, what does @@ mean?
我正在阅读MySQL文档,在此页面上http://dev.mysql.com/doc/refman/5.1/en/set-statement.html它经常使用“ @@”,但未定义“ @@”手段?
另一个例子是变量名
mysql> select @@hostname;
+------------+
| @@hostname |
+------------+
| server1 |
+------------+
1 row in set (0.00 sec)
mysql> select @hostname;
+-----------+
| @hostname |
+-----------+
| NULL |
+-----------+
1 row in set (0.00 sec)
什么是@ vs @@?
@@-系统可用
@@用于系统变量。 将不同的后缀与@@一起使用,您可以获取会话或系统变量的全局值。
当在表达式中将系统变量称为@@ var_name时(即,当您不指定@@ global。或@@ session。时),MySQL将返回会话值(如果存在),否则返回全局值。 (这与SET @@ var_name = value不同,后者始终引用会话值。)
@-用户定义的变量
而@用于用户定义的变量。
更多细节
在链接上有更多详细信息-http://dev.mysql.com/doc/refman/5.1/en/set-statement.html
来自相同的文档并使用系统变量docs-
为了明确表明变量是全局变量,请在其名称前加上GLOBAL或@@ global。设置全局变量必须具有SUPER特权。
为了明确表示变量是会话变量,请在其名称前加上SESSION,@@ session。或@@。 设置会话变量不需要特殊特权,但是客户端只能更改其自己的会话变量,而不能更改任何其他客户端的会话变量。
本地和@@ local。 是SESSION和@@ session的同义词。
支持系统变量的@@ var_name语法,以便与某些其他数据库系统兼容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.