sql >> Databáze >  >> Database Tools >> phpMyAdmin

Potíže se zápisem uložené procedury v MYSQL

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žít Delimiter 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č.




  1. SQL Server Management Studio:Import potichu ignoruje 99,9 % dat

  2. mssql '5 (Přístup odepřen.)' chyba během obnovy databáze

  3. Jak zkontrolovat a opravit databázi v phpMyAdmin

  4. Začněte léto s novým DBeaverem 6.1