【问题标题】:Can't declare variable in stored procedure phpmyadmin | mysql无法在存储过程 phpmyadmin 中声明变量 | mysql
【发布时间】:2016-02-09 11:06:24
【问题描述】:

我想创建一个包含变量的存储过程,所以我做了这个

CREATE PROCEDURE SPTest()
BEGIN
    DECLARE @var INT;
END

但它给了我一个错误

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@var INT' at line 3

我已经尝试了 stackoverflow 的所有答案,我使用的是 phpmyadmin 版本 4.5.4.1,它说是最新的。我该如何解决这个问题? 提前致谢

【问题讨论】:

    标签: php mysql phpmyadmin


    【解决方案1】:

    使用delimiter:

    delimiter 
    CREATE PROCEDURE SPTest()
    BEGIN
        DECLARE @var INT;
    END
    | 
    delimiter ;
    

    【讨论】:

    • 它仍然给我一个错误:#1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'PROCEDURE SPTest() BEGIN DECLARE @var INT; 附近使用正确的语法;第 1 行的 END 分隔符
    【解决方案2】:

    我相信您的问题是双重的; MySQL 似乎不支持在变量名中使用@,这与明显的phpMyAdmin bug 相结合,即使SQL 有效,也会导致phpMyAdmin 失败。

    我在命令行使用这个语句很幸运:

    DELIMITER &
    CREATE PROCEDURE SPTest()
    BEGIN
        DECLARE v INT;
    END
    &
    DELIMITER ;
    

    【讨论】:

      【解决方案3】:

      如果您使用的是例程,只需添加 BEGIN 和 END

      BEGIN
        DECLARE v INT DEFAULT 1;
      END
      

      我希望它会起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-01
        • 1970-01-01
        • 2014-08-08
        • 1970-01-01
        相关资源
        最近更新 更多