我在存储过程中声明变量有问题。我使用MySQL。我的示例代码:
CREATE PROCEDURE `name`()
BEGIN
DECLARE varname INT;
SELECT * FROM `table` INTO var;
END
MySQL返回错误:
错误1064 - 您的SQL语法中有错误;检查与MariaDB服务器版本对应的手册,以便在第3行的''附近使用正确的语法
var是保留的关键字
CREATE PROCEDURE test ()
BEGIN
DECLARE var2 INT;
// Do something
END;
更新:
我在错误中看到了MAriaDB,在MariaDB中声明变量的正确方法是
SET @var = 0;
您应该使用正确的关键字标记您的问题
如果过程中有多个语句,则必须更改分隔符。否则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)