在mysql 5.7中声明变量时出现错误1064(42000)

时间:2019-06-30 04:35:32

标签: mysql

我正在尝试在mysql中声明一个变量,但是奇怪的是,这些命令都没有起作用。我已经从stackoverflow解决的问题中删除了这些命令,尽管这些命令似乎对大多数人都有效,但在我的系统上却抛出了同样的错误。

MySQL Server version: 5.7.26-0ubuntu0.18.10.1 (Ubuntu)
> declare  @d1  decimal(10,2)
> declare  d1   float(10);
> declare `d1`  BIGINT(2);
> declare  d1   INT;

所有这些都给出相同的错误

 ERROR 1064 (42000): You have an error in your SQL syntax; check the
 manual that corresponds to your MySQL server version for the right syntax
 to use

此外,该命令对我来说什么也不打印,没有错误,只是空白:-

 -> DECLARE @COURSE_ID INT
    -> SELECT @COURSE_ID = 5
    -> PRINT @COURSE_ID
    -> 
    -> ;
    -> 
    -> 

1 个答案:

答案 0 :(得分:0)

用户定义的变量无需声明或初始化即可访问。引用未初始化的变量将具有NULL值和字符串类型。

使用SET语句:

SET @X=1 ;

可以通过简单的select语句访问:

SELECT @X; /*will result in 1*/
SET @X=@X+2; /*will update X to 3 now*/
SELECT @x; /*will result in 3*/

作为特定于会话的用户变量可以从一组有限的数据类型中分配值:整数,十进制,浮点数,二进制或非二进制字符串或NULL值。


  

对于局部变量:它们需要在使用DECLARE之前声明   被访问,可以用作局部变量和输入   存储过程中的参数

DELIMITER //
CREATE PROCEDURE Vnita(n int)
BEGIN
DECLARE X INT DEFAULT 1;
END
//

别忘了将定界符改回分号...

DELIMITER ;

-谢谢提问。

相关问题