【问题标题】:You have an error in your SQL syntax when creating a procedure. MYSQL创建过程时,您的 SQL 语法有错误。 MYSQL
【发布时间】:2014-04-24 06:55:45
【问题描述】:

我在尝试创建过程时收到该错误。我不知道出了什么问题,如果有人与我有相同的错误,我进行了很多搜索,但通常他们在分隔符处犯了错误,我认为我是对的。

“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在 ' 附近使用的正确语法) SELECT SUM(robatori.quantitat_robada) FROM robatori WHERE param1=jugador_lla' at line 1"

我的查询是下一个:

DELIMITER //
CREATE PROCEDURE robatoris (IN param1 VARCHAR) 
SELECT SUM(robatori.quantitat_robada) FROM robatori WHERE param1=jugador_lladre;
//
DELIMITER ;

谢谢大家,这是我的第一个问题。 :)

【问题讨论】:

    标签: mysql stored-procedures procedure


    【解决方案1】:

    您缺少VARCHAR 类型的输入参数的长度。

    修改如下:

    DELIMITER //
    CREATE PROCEDURE robatoris ( IN param1 VARCHAR(255) ) 
      SELECT SUM(robatori.quantitat_robada) 
        FROM robatori 
       WHERE param1=jugador_lladre;
    //
    DELIMITER ;
    

    由于您只有要执行的语句,BEGIN - END 块是可选的。
    但建议在所有情况下都练习。

    DELIMITER //
    CREATE PROCEDURE robatoris ( IN param1 VARCHAR(255) ) 
    BEGIN
      SELECT SUM(robatori.quantitat_robada) 
        FROM robatori 
       WHERE param1=jugador_lladre;
    END;
    //
    DELIMITER ;
    

    【讨论】:

    • 非常感谢,真是个愚蠢的错误 xD。你回答得真快。谢谢!
    【解决方案2】:

    添加 BEGIN 和 END。使用 TEXT 类型:

    DELIMITER //
    CREATE PROCEDURE robatoris (IN param1 TEXT)
    BEGIN
      SELECT SUM(robatori.quantitat_robada)
      FROM robatori
      WHERE param1=jugador_lladre;
    END//
    DELIMITER ;
    

    【讨论】:

      猜你喜欢
      • 2016-06-13
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 2014-10-25
      • 2019-12-03
      相关资源
      最近更新 更多