存储过程 - 错误 #1064

Stored Procedure - Error #1064

在为 Callable 语句创建存储过程时出错: 我知道一些非常简单的事情会出错,但我就是想不通!

我的查询:

使用演示;

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 

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

在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 ;