DELIMITER
příkaz je vestavěný klient prostředí MySQL a je rozpoznán pouze tímto programem (a prohlížečem dotazů MySQL). Není nutné používat DELIMITER
pokud spouštíte příkazy SQL přímo prostřednictvím rozhraní API.
Účel DELIMITER
má vám pomoci vyhnout se nejasnostem ohledně ukončení CREATE FUNCTION
příkaz, kdy samotný příkaz může obsahovat středníky. To je důležité u klienta shellu, kde ve výchozím nastavení ukončuje příkaz SQL středník. Chcete-li odeslat tělo funkce (nebo spouštěče nebo procedury), musíte koncový znak příkazu nastavit na jiný znak.
CREATE FUNCTION trivial_func (radius float)
RETURNS FLOAT
BEGIN
IF radius > 1 THEN
RETURN 0.0; <-- does this semicolon terminate RETURN or CREATE FUNCTION?
ELSE
RETURN 1.0;
END IF;
END
Vzhledem k tomu, že rozhraní API obvykle umožňuje odesílat vždy pouze jeden příkaz SQL, neexistuje žádná nejednoznačnost – rozhraní ví, že žádné středníky v těle vaší definice funkce neukončují celou CREATE FUNCTION
prohlášení. Není tedy potřeba měnit zakončení příkazu pomocí DELIMITER
.