以下是MySQL用户变量的属性-
用户变量不区分大小写。在区分版本5之前,它们区分大小写。可以在以下示例中进行说明-
mysql> SET @A = 'MySQL'; mysql> Select @A, @a; +-------+-------+ | @A | @a | +-------+-------+ | MySQL | MySQL | +-------+-------+ 1 row in set (0.00 sec)
实际上,用户变量特定于在其中使用它们的客户端连接,并且仅在该连接的持续时间内存在。连接结束时,其所有用户变量都将丢失。
用户变量只能出现在允许表达式的地方。它们可以出现在常量或文字标识符出现的位置。在我们尝试使用用户变量提供表名的示例之后,将对其进行说明。
mysql> Set @table_name = CONCAT('tbl_','Employee'); 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'; mysql> Select @name; +-------+ | @name | +-------+ | Rahul | +-------+ 1 row in set (0.00 sec)
此时,变量@name的值为'Rahul',但是当我们将其更改为'Raman'时,先前的值将丢失。
mysql> SET @name = 'Raman'; mysql> Select @name; +-------+ | @name | +-------+ | Raman | +-------+ 1 row in set (0.00 sec)