早上好,
我正在创建以下程序:
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_inventory_audit`(
IN `pitem_id` int,
IN `puser_id` int,
IN `pfield_name` varchar(265),
IN `pold_value` mediumtext,
IN `pnew_value` mediumtext
)
BEGIN
INSERT INTO inventory_audit (item_id, user_id, field_name, old_value, new_value)
VALUES (pitem_id, puser_id, pfield_name, pold_value, pnew_value);
END$$
它正从我们运行MySQL 5.0.45的旧服务器复制到运行MySQL 5.5.19的新服务器。
当我在新服务器上执行上述代码时,我收到以下错误:
#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 11
这是否意味着VALUES括号内的每个条目必须被''包围。 'pitem_id'?
答案 0 :(得分:4)
您没有更改默认;
的分隔符,因此您在那里使用的;
实际上是终止了该过程,而不是查询。
DELIMITER $$ <--- add this line
CREATE ....
...
END$$
答案 1 :(得分:4)
您需要在创建语句之前使用DELIMITER $$
。