MySQL:存储过程插入语句错误

时间:2012-11-19 02:49:57

标签: mysql sql stored-procedures insert

我创建了一个MySQL脚本,该脚本创建了一个存储过程,该过程在给定存储过程的IN参数的情况下将新行插入到表中。但是,当我们尝试运行脚本时,会显示以下错误:

  

第22行的错误1064(42000):您的SQL语法出错;   检查与您的MySQL服务器版本对应的手册   正确的语法在''第3行附近使用

这基本上是脚本文件中的存储过程:

CREATE PROCEDURE 'packagename'.`procedureName`
(IN param1 DATE, 
 IN param2 TIME, 
 IN param3 VARCHAR(45), 
 IN param4 VARCHAR(100))
BEGIN
    INSERT INTO packagename.table (`param1`, `param2`, `param3`, `param4`) 
    VALUES (param1, param2, param3, param4);
END;

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  • 更改DELIMITER
  • 在包名称中使用反引号而不是单引号
  • 如果您的表名在包名tabletable,请使用反引号将其转义

查询,

DELIMITER $$
CREATE PROCEDURE `packagename`.`procedureName`
(
      IN param1 DATE, 
      IN param2 TIME, 
      IN param3 VARCHAR(45), 
      IN param4 VARCHAR(100)
)
BEGIN
     INSERT INTO packagename.`table` (`param1`, `param2`, `param3`, `param4`) 
            VALUES (param1, param2, param3, param4);
END $$
DELIMITER ;