我创建了一个 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/