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
delimiterpříkaz.Ne všechny verze phpMyAdmin rozpoznávají
delimiterpříkaz; místo toho lze použítDelimitervstupní 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
delimiterprotož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 ... ENDsložený blok příkazů a vyhnete se nutnosti měnit oddělovač.