在存储过程中声明变量

时间:2016-04-22 09:07:19

标签: mysql sql stored-procedures variable-declaration

我在存储过程中声明变量有问题。我使用MySQL。我的示例代码:

CREATE PROCEDURE `name`()
BEGIN
    DECLARE varname INT;

    SELECT  * FROM `table` INTO var;
END

MySQL返回错误:

  

错误1064 - 您的SQL语法出错;检查手册   对应于您的MariaDB服务器版本以获得正确的语法   在第3行附近使用

2 个答案:

答案 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)