代码之家  ›  专栏  ›  技术社区  ›  Jay Panchal

存储过程-错误#1064

  •  0
  • Jay Panchal  · 技术社区  · 9 年前

    为可调用语句创建存储过程时出错: 我知道一些很简单的事情出了问题,但我就是想不通!

    我的疑问:

    USE演示;

    1. CREATE PROCEDURE
    2.  INSERT_emp_data (IN ID INT, IN NAME VARCHAR(2), IN AGE INT, IN IMAGE BLOB)
    3. BEGIN
    4.  INSERT INTO emp_data VALUES(ID, NAME, AGE, IMAGE);
    5. END;
    /
    

    SQL查询:

    CREATE PROCEDURE
        INSERT_emp_data (IN ID INT, IN NAME VARCHAR(2), IN AGE INT, IN IMAGE BLOB)
    BEGIN
        INSERT INTO emp_data VALUES(ID, NAME, AGE, IMAGE);
    MySQL said: Documentation
    
    #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 '' at line 4 
    

    感谢您的帮助! 感谢您的时间!

    1 回复  |  直到 9 年前
        1
  •  2
  •   Gordon Linoff    9 年前

    在MySQL中编写存储过程时,应使用 DELIMITER 陈述此外,您应该为列命名,使它们不与列名冲突。并且,当使用 INSERT 始终列出列名称。因此:

    DELIMITER $$
    CREATE PROCEDURE INSERT_emp_data (
        IN IN_ID INT,
        IN IN_NAME VARCHAR(2),
        IN IN_AGE INT,
        IN IN_IMAGE BLOB
    )
    BEGIN
        INSERT INTO emp_data(id, name, age, image)
            VALUES(IN_ID, IN_NAME, IN_AGE, IN_IMAGE);
    END;
    $$
    DELIMITER ;