Както е документирано в Дефиниране на съхранени програми :
Ако използвате mysql клиентска програма за дефиниране на съхранена програма, съдържаща знаци за точка и запетая, възниква проблем. По подразбиране mysql самият той разпознава точката и запетаята като разделител на израза, така че трябва временно да предефинирате разделителя, за да предизвика mysql за да предадете цялата съхранена дефиниция на програмата на сървъра.
Същото важи и за phpMyAdmin.
За да предефинирате mysql разделител, използвайте
разделителя
команда.Не всички версии на phpMyAdmin разпознават
разделителя
команда; вместо това може да се използваразделител
поле за въвеждане под полето за въвеждане на SQL:вижте Как да напиша SP в phpMyAdmin (MySQL)?Следва пример за функция, която приема параметър, изпълнява операция с помощта на SQL функция и връща резултата. В този случай не е необходимо да използвате
разделител
тъй като дефиницията на функцията не съдържа вътрешен;
разделители на изрази:mysql>
CREATE FUNCTION hello (s CHAR(20))
mysql>RETURNS CHAR(50) DETERMINISTIC
->RETURN CONCAT('Hello, ',s,'!');
Query OK, 0 rows affected (0.00 sec)Във вашия случай можете да премахнете
BEGIN ... ENDкод>
съставен блок на изрази и избягвайте необходимостта от промяна на разделителя.