I am reading the MySQL documentation on this page: http://dev.mysql.com/doc/refman/5.1/en/set-statement.html
It often uses "@@", but does not define what "@@" means.
Another example is in variable names:
mysql> select @@hostname;
+------------+
| @@hostname |
+------------+
| server1 |
+------------+
1 row in set (0.00 sec)
mysql> select @hostname;
+-----------+
| @hostname |
+-----------+
| NULL |
+-----------+
1 row in set (0.00 sec)
What is @ vs @@?
@@
- System Variable@@
is used for system variables. Using different suffix with @@
, you can get either session or global value of the system variable.
When you refer to a system variable in an expression as @@var_name
(that is, when you do not specify @@global.
or @@session.
), MySQL returns the session value if it exists and the global value otherwise. (This differs from SET @@var_name = value
, which always refers to the session value.)
@
- User-Defined VariableWhile @
is used for user-defined variables.
For more detailes read the following section from the official MySQL Reference Manual:
Using System Variables:
To indicate explicitly that a variable is a session variable, precede its name by SESSION, @@session., or @@.
User-Defined Variables:
User variables are written as @var_name, where the variable name var_name consists of alphanumeric characters, “.”, “_”, and “$”. A user variable name can contain other characters if you quote it as a string or identifier (for example, @'my-var', @"my-var", or @
my-var
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With