Jak je zdokumentováno v části Definování uložených programů :
Pokud používáte mysql klientský program definovat uložený program obsahující středníky, nastává problém. Ve výchozím nastavení mysql sám rozpozná středník jako oddělovač příkazů, takže musíte oddělovač dočasně předefinovat, aby způsobil mysql pro předání celé uložené definice programu serveru.
Totéž platí pro phpMyAdmin.
Chcete-li předefinovat mysql oddělovač, použijte
delimiter
příkaz.Ne všechny verze phpMyAdmin rozpoznávají
delimiter
příkaz; místo toho lze použítDelimiter
vstupní pole pod vstupním polem SQL:viz Jak napíšu SP v phpMyAdmin (MySQL)?Následuje příklad funkce, která vezme parametr, provede operaci pomocí funkce SQL a vrátí výsledek. V tomto případě není nutné používat
delimiter
protože definice funkce neobsahuje žádné interní;
oddělovače příkazů:mysql>
CREATE FUNCTION hello (s CHAR(20))
mysql>RETURNS CHAR(50) DETERMINISTIC
->RETURN CONCAT('Hello, ',s,'!');
Query OK, 0 rows affected (0.00 sec)Ve vašem případě můžete odstranit
BEGIN ... END
složený blok příkazů a vyhnete se nutnosti měnit oddělovač.