我正在尝试在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
->
-> ;
->
->
答案 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 ;
-谢谢提问。