sql >> Databáze >  >> RDS >> Mysql

chyba oddělovače mysql

Odebral bych středník za END .

    ...
END
|
DELIMITER ;

Pokud jde o váš komentář, nemůžete použít aktuální oddělovač při deklarování nového oddělovače. Zní to zmateně, ale zvažte, zda to uděláte:

DELIMITER |;

Nyní by si MySQL myslelo, že oddělovač je "|;" (dva znaky, fajfka a středník). Pokud o tom přemýšlíte, DELIMITER musí klient MySQL ošetří zvláštním způsobem. Je to jediné prohlášení, které nemůže za ním následuje aktuální oddělovač.

Takže při nastavování oddělovače na rouru proveďte toto:

DELIMITER |

Při nastavování zpět na středník postupujte takto:

DELIMITER ;

FWIW, spustil jsem následující bez chyby v mé místní testovací databázi na MySQL 5.0.75:

DROP FUNCTION IF EXISTS PersonName;
DELIMITER |

CREATE FUNCTION PersonName( personID SMALLINT )
RETURNS CHAR(20)
BEGIN
  DECLARE pname CHAR(20) DEFAULT '';
  SELECT name INTO pname FROM family WHERE ID=personID;
  RETURN pname;
END
|
DELIMITER ;


  1. Může pokojová knihovna zkopírovat db ze složky aktiv?

  2. obsah binárního souboru zobrazený v php print_r, ale neuložený v mysql

  3. Jak získat přístup ke struktuře a získat seznam sloupců, datové typy rekurzoru?

  4. Jak vrátit sadu výsledků / kurzor z anonymního bloku Oracle PL/SQL, který provádí dynamické SQL?