De DELIMITER
commando is een ingebouwde MySQL-shellclient en wordt alleen door dat programma (en MySQL Query Browser) herkend. Het is niet nodig om DELIMITER
. te gebruiken als u SQL-instructies rechtstreeks uitvoert via een API.
Het doel van DELIMITER
is om u te helpen onduidelijkheid te voorkomen over de beëindiging van de CREATE FUNCTION
statement, wanneer het statement zelf puntkomma's kan bevatten. Dit is belangrijk in de shell-client, waar standaard een puntkomma een SQL-instructie beëindigt. U moet de instructieterminator op een ander teken instellen om de hoofdtekst van een functie (of trigger of procedure) in te dienen.
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
Aangezien de API u doorgaans toestaat om één SQL-instructie tegelijk in te dienen, is er geen dubbelzinnigheid -- de interface weet dat puntkomma's in de hoofdtekst van uw functiedefinitie niet de hele CREATE FUNCTION
beëindigen uitspraak. Het is dus niet nodig om de instructieterminator te wijzigen met DELIMITER
.