Di konsol mysql kita akan menggunakan perintah pembatas untuk mengubah pembatas dan berguna untuk mendefinisikan prosedur. Saya mengerti perintah delimiter
hanya untuk klien mysql (perintah sisi klien).
tapi saya menggunakan klien mysql yang tidak memiliki perintah delimiter
seperti dbslayer
, pada klien jenis ini bagaimana saya bisa mendefinisikan prosedur.
untuk saat ini pertimbangkan:
create procedure test_pro()
begin
select 'hello pro';
end
Saya mencoba yang berikut ini:
mysql -u root -pmypass test < proc_file
di mana proc_file berisi prosedur di atas;
tapi itu memberi saya kesalahan berikut:
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
Acara saya coba yang berikut ini
create procedure test_pro()
begin
select 'hello pro';
end;
(menambahkan tanda titik koma) tetapi saya mendapatkan kesalahan yang sama.
Sama dengan yang saya alami dbslayer
, jika saya dapat mendefinisikan prosedur di atas melalui terminal, saya pikir saya harus dapat melakukannya melaluidbslayer
sumber
DELIMITER
atau mengubahnya lewat argumen--delimiter
padamysql
baris perintah.Ini bekerja untuk saya:
Isi dari mysqlfile.sql
dan pada commandline:
sumber
Saya tahu ini adalah pertanyaan lama tetapi yang berikut mungkin berguna bagi seseorang di masa depan:
Diuji dan bekerja melawan Maria DB.
Setelah selesai, Anda bisa memanggil prosedur menggunakan:
Semoga itu bisa membantu :)
sumber