我在存储过程中声明变量有问题。我使用MySQL。我的示例代码:
CREATE PROCEDURE `name`()
BEGIN
DECLARE varname INT;
SELECT * FROM `table` INTO var;
END
MySQL返回错误:
错误1064 - 您的SQL语法出错;检查手册 对应于您的MariaDB服务器版本以获得正确的语法 在第3行附近使用
答案 0 :(得分:2)
var是 保留 关键字
CREATE PROCEDURE test ()
BEGIN
DECLARE var2 INT;
// Do something
END;
更新 :
我在错误中看到了MAriaDB,在MariaDB中声明变量的正确方法是
SET @var = 0;
您应该使用正确的关键字标记您的问题
答案 1 :(得分:2)
如果过程中有多个语句,则必须更改分隔符。否则MySQL认为程序声明在第一个语句之后完成。
这是一个有效的例子。顺便说一句,var
不是保留关键字,就像其他人试图告诉你的那样。
DELIMITER $$
CREATE PROCEDURE test ()
BEGIN
DECLARE var INT;
SELECT 1 INTO var;
SELECT var;
END $$
DELIMITER ;
CALL test();
+------+
| var |
+------+
| 1 |
+------+
1 row in set (0.00 sec)