MySQL创建过程产生错误1064

时间:2012-01-04 18:42:04

标签: mysql mysql-error-1064

早上好,

我正在创建以下程序:

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'?

2 个答案:

答案 0 :(得分:4)

您没有更改默认;的分隔符,因此您在那里使用的;实际上是终止了该过程,而不是查询。

DELIMITER $$   <--- add this line
CREATE ....
...
END$$

答案 1 :(得分:4)

您需要在创建语句之前使用DELIMITER $$