Il DELIMITER
Il comando è un client shell MySQL integrato ed è riconosciuto solo da quel programma (e da MySQL Query Browser). Non è necessario utilizzare DELIMITER
se esegui istruzioni SQL direttamente tramite un'API.
Lo scopo di DELIMITER
serve per evitare ambiguità sulla cessazione di CREATE FUNCTION
istruzione, quando l'istruzione stessa può contenere caratteri punto e virgola. Questo è importante nel client shell, dove per impostazione predefinita un punto e virgola termina un'istruzione SQL. È necessario impostare il terminatore dell'istruzione su un altro carattere per inviare il corpo di una funzione (o trigger o procedura).
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
Poiché l'API in genere ti consente di inviare un'istruzione SQL alla volta, non c'è ambiguità:l'interfaccia sa che qualsiasi punto e virgola all'interno del corpo della definizione della tua funzione non termina l'intero CREATE FUNCTION
dichiarazione. Quindi non è necessario modificare il terminatore dell'istruzione con DELIMITER
.