1

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

第 22 行的 ERROR 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;

有任何想法吗?

4

1 回答 1

1
  • 改变DELIMITER
  • 在包名中使用反引号而不是单引号
  • 如果您的表的名称在table包名中。table, 用反引号转义

询问,

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 ;
于 2012-11-19T02:52:05.360 回答