В консоли mysql мы будем использовать команду delimiter для изменения разделителя, и полезно определить процедуры. Я понял команду delimiter
только для клиента mysql (команда на стороне клиента).
но я использую клиент mysql, у которого нет такой команды, delimiter
как dbslayer
на таких клиентах, как я могу определить процедуры.
а пока рассмотрим:
create procedure test_pro()
begin
select 'hello pro';
end
Я попробовал следующее:
mysql -u root -pmypass test < proc_file
где proc_file содержит вышеуказанную процедуру;
но это дает мне следующую ошибку:
ERROR 1064 (42000) at line 1: 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 3
Событие я попробовал следующее
create procedure test_pro()
begin
select 'hello pro';
end;
(добавил точку с запятой), но получаю ту же ошибку.
То же самое я испытываю с тем dbslayer
, что , если я могу определить вышеописанную процедуру через терминал, я думаю, что я смогу сделать это черезdbslayer
источник
DELIMITER
либо изменить ее, передав аргумент--delimiter
вmysql
командной строке.Это сработало для меня:
Содержимое mysqlfile.sql
и в командной строке:
источник
Я знаю, что это старый вопрос, но в будущем кому-то может пригодиться:
Проверено и работает против Марии Д.Б.
После завершения вы можете просто вызвать процедуру, используя:
Надеюсь, это поможет :)
источник