создать процедуру не удалось? - PullRequest
0 голосов
/ 07 июня 2010

при попытке создать простую процедуру в mysql 5.1.47-community она терпит неудачу каждый раз, когда я пробовал все! даже простые вещи, как это!

DELIMITER //
CREATE PROCEDURE two ()
begin
SELECT 1+1;
end;
//

Ошибка

ОШИБКА: Ошибка 1064: у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'mydb' в строке 1

Ответы [ 2 ]

0 голосов
/ 07 июня 2010

Удалить конечный разделитель «конец» вместо «конец»;

0 голосов
/ 07 июня 2010

Сообщение об ошибке, которое вы дали, не соответствует коду, который вы вставили. Вы имеете в виду «mydb» где-то в выполняемом SQL-коде, но его нет нигде в коде, который вы задали в вопросе.

Код, который вы дали, должен работать нормально, так как я не вижу синтаксических ошибок, возможно, вам просто нужно предоставить ему базу данных для работы («test» в моем случае здесь, возможно, это должно быть «mydb»). "для тебя?).

DELIMITER //
CREATE PROCEDURE test.two ()
begin
    SELECT 1+1;
end;
//

DELIMITER ;

CALL test.two;

Однако я подозреваю, что ошибка, которую вы получаете, заключается в том, что в вашем SQL-коде вы не показываете нам.

EDIT
Возможно, это может быть команда delimiter. Вы изменяете разделитель на // вместо значения по умолчанию ;. Поэтому, возможно, вы выполнили эту команду (и изменили разделитель для вашего сеанса на //), а затем попытались запустить USE mydb;, когда ; больше не распознается как допустимый разделитель для вашего сеанса, и это может быть давая вам ошибку. Попробуйте поместить delimiter ; перед строкой использования и посмотрите, поможет ли это (а затем используйте ее снова после того, как вы определили хранимую процедуру, чтобы вы могли ее вызвать). Это всего лишь теория, поскольку я не уверен в тонкостях команды разделителя.

...