【问题标题】:Stored Procedure - Error #1064存储过程 - 错误 #1064
【发布时间】:2015-08-30 17:52:09
【问题描述】:

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

我的查询:

使用演示;

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 stored-procedures mysql-error-1064


    【解决方案1】:

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

    【讨论】:

    • 非常感谢!从现在开始我都会记住这一点,虽然这是我第一次创建程序!感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2012-08-02
    相关资源
    最近更新 更多