Dans la console mysql, nous utiliserons la commande delimiter pour changer le délimiteur et il est utile de définir les procédures. J'ai compris la commande delimiter
uniquement pour le client mysql (commande côté client).
mais j'utilise le client mysql qui n'a pas la commande delimiter
comme dbslayer
, sur ce genre de clients comment puis-je définir les procédures.
considérer pour l'instant:
create procedure test_pro()
begin
select 'hello pro';
end
J'ai essayé ce qui suit:
mysql -u root -pmypass test < proc_file
où proc_file contient la procédure ci-dessus;
mais cela me donne l'erreur suivante:
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
Événement, j'ai essayé ce qui suit
create procedure test_pro()
begin
select 'hello pro';
end;
(a ajouté le point-virgule de fin) mais j'obtiens la même erreur.
Idem que je vis avec le dbslayer
, si je suis en mesure de définir la procédure ci-dessus via le terminal, je pense que je devrais pouvoir le faire via ledbslayer
la source
DELIMITER
ou le changer en passant l'argument--delimiter
enmysql
ligne de commande.Cela a fonctionné pour moi:
Contenu de mysqlfile.sql
et sur la ligne de commande:
la source
Je sais que c'est une vieille question, mais ce qui suit pourrait être utile pour quelqu'un à l'avenir:
Testé et travaillant contre Maria DB.
Une fois terminé, vous pouvez simplement appeler la procédure en utilisant:
J'espère que cela pourra aider :)
la source