In der MySQL-Konsole verwenden wir den Befehl delimiter, um das Trennzeichen zu ändern, und es ist nützlich, die Prozeduren zu definieren. Ich habe den Befehl delimiter
nur für den MySQL-Client verstanden (clientseitiger Befehl).
aber ich bin mit dem MySQL - Client, der den Befehl nicht haben , delimiter
wie dbslayer
, auf diese Art von Kunden , wie kann ich die Verfahren festlegen.
für jetzt überlegen Sie:
create procedure test_pro()
begin
select 'hello pro';
end
Ich habe folgendes versucht:
mysql -u root -pmypass test < proc_file
wobei proc_file die obige Prozedur enthält;
aber das gibt mir folgenden Fehler:
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
Event habe ich folgendes versucht
create procedure test_pro()
begin
select 'hello pro';
end;
(fügte das nachfolgende Semikolon hinzu), erhalte aber den gleichen Fehler.
Dasselbe erlebe ich mit dem dbslayer
, wenn ich in der Lage bin, das obige Verfahren über das Terminal zu definieren, denke ich, dass ich das durch das Terminal tun solltedbslayer
quelle
DELIMITER
oder ändern, indem Sie das Argument--delimiter
in dermysql
Befehlszeile übergeben.Das hat bei mir funktioniert:
Inhalt von mysqlfile.sql
und auf der Kommandozeile:
quelle
Ich weiß, dass dies eine alte Frage ist, aber Folgendes könnte in Zukunft für jemanden nützlich sein:
Getestet und arbeitet gegen Maria DB.
Nachdem es fertig ist, können Sie die Prozedur einfach aufrufen mit:
Ich hoffe, das hilft :)
quelle