Сообщение об ошибке, которое вы дали, не соответствует коду, который вы вставили. Вы имеете в виду «mydb» где-то в выполняемом SQL-коде, но его нет нигде в коде, который вы задали в вопросе.
Код, который вы дали, должен работать нормально, так как я не вижу синтаксических ошибок, возможно, вам просто нужно предоставить ему базу данных для работы («test
» в моем случае здесь, возможно, это должно быть «mydb
»). "для тебя?).
DELIMITER //
CREATE PROCEDURE test.two ()
begin
SELECT 1+1;
end;
//
DELIMITER ;
CALL test.two;
Однако я подозреваю, что ошибка, которую вы получаете, заключается в том, что в вашем SQL-коде вы не показываете нам.
EDIT
Возможно, это может быть команда delimiter
. Вы изменяете разделитель на //
вместо значения по умолчанию ;
. Поэтому, возможно, вы выполнили эту команду (и изменили разделитель для вашего сеанса на //), а затем попытались запустить USE mydb;
, когда ;
больше не распознается как допустимый разделитель для вашего сеанса, и это может быть давая вам ошибку. Попробуйте поместить delimiter ;
перед строкой использования и посмотрите, поможет ли это (а затем используйте ее снова после того, как вы определили хранимую процедуру, чтобы вы могли ее вызвать). Это всего лишь теория, поскольку я не уверен в тонкостях команды разделителя.