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

标签 mysql sql stored-procedures insert

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

ERROR 1064 (42000) at line 22: 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 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;

有什么想法吗?

最佳答案

  • 更改DELIMITER
  • 在包名中使用反引号代替单引号
  • 如果您的表的名称是 packagename.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 ;

关于MySQL:存储过程插入语句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13447016/

相关文章:

mysql - 将UNION查询的结果保存在MYSQL存储过程的局部变量中

java - 使用 MySQL 和 JSP 的乌尔都语 (UTF-8) 数据

用于显示 SQL 表的列中的行数的 Java 应用程序脚本。 SQL 查询错误。输出应该在标签中

python - 为什么 pip install mysql-connector 失败?

mysql - 如何在 SQL 中删除重复(两行的混合)行?

ios - 如何计算核心数据中的连续天数?

c# - 在 Entity Framework 中添加存储过程复杂类型

mysql - 将 "SQL SELECT STATEMENT"嵌套为 REGEX 运算符/内部

php - 循环遍历多种表单

MySQL 插入循环