MySQL用户变量有哪些属性?
以下是MySQL用户变量的属性 −
阅读更多:MySQL 教程
不区分大小写
用户变量不区分大小写,在MySQL 5版本之前是区分大小写的。可以在下面的示例中说明。
示例
mysql> SET @A = 'MySQL';
Query OK, 0 rows affected (0.00 sec)
mysql> Select @A, @a;
+-------+-------+
| @A | @a |
+-------+-------+
| MySQL | MySQL |
+-------+-------+
1 row in set (0.00 sec)
仅限于客户端连接
实际上,用户变量是特定于客户端连接的,且仅在该连接的持续时间内存在。当连接结束时,所有用户变量都被删除。
仅与表达式一起使用
用户变量仅出现在允许表达式的位置。它们可以出现在已经出现常量或文字标识符的位置。以下示例中,我们正在尝试使用用户变量提供表名。
示例
mysql> Set @table_name = CONCAT('tbl_','Employee');
Query OK, 0 rows affected (0.00 sec)
mysql> Create Table @table_name(Id Int);
ERROR 1064 (42000): You have an error in your SQL syntax near '@table_name(Id Int)'
在赋予新值时丢失
当我们为用户变量赋新值时,其值将丢失。换句话说,给定的用户变量的值一直持久到我们给它赋另一个值。以下示例将演示它。
示例
mysql> SET @name = 'Rahul';
Query OK, 0 rows affected (0.00 sec)
mysql> Select @name;
+-------+
| @name |
+-------+
| Rahul |
+-------+
1 row in set (0.00 sec)
此时,变量@name具有值“Rahul”,但当我们将其更改为“Raman”时,以前的值将丢失。
mysql> SET @name = 'Raman';
Query OK, 0 rows affected (0.00 sec)
mysql> Select @name;
+-------+
| @name |
+-------+
| Raman |
+-------+
1 row in set (0.00 sec)