Процедура создания MySQL выдает ошибку 1064 - PullRequest
1 голос
/ 04 января 2012

Доброе утро,

Я создаю следующую процедуру:

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.5.19 со нашего старого сервера под управлением MySQL 5.0.45.

Когда я выполняю приведенный выше код на новом сервере, я получаю следующую ошибку:

#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 ]

4 голосов
/ 04 января 2012

Вам нужно иметь DELIMITER $$ перед оператором создания.

4 голосов
/ 04 января 2012

Вы не изменили разделитель со значения по умолчанию ;, поэтому используемый вами ; фактически завершает процедуру, а не запрос.

DELIMITER $$   <--- add this line
CREATE ....
...
END$$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...