DELIMITER
kommandoen er en MySQL shell-klient indbygget, og den genkendes kun af det program (og MySQL Query Browser). Det er ikke nødvendigt at bruge DELIMITER
hvis du udfører SQL-sætninger direkte gennem en API.
Formålet med DELIMITER
er at hjælpe dig med at undgå tvetydighed om afslutningen af CREATE FUNCTION
sætning, når selve sætningen kan indeholde semikolontegn. Dette er vigtigt i shell-klienten, hvor et semikolon som standard afslutter en SQL-sætning. Du skal indstille sætningsterminatoren til et andet tegn for at indsende brødteksten af en funktion (eller trigger eller procedure).
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
Da API'en typisk tillader dig at indsende én SQL-sætning ad gangen, er der ingen tvetydighed -- grænsefladen ved, at semikolon inde i kroppen af din funktionsdefinition ikke afslutter hele CREATE FUNCTION
udmelding. Så der er ingen grund til at ændre sætningsterminatoren med DELIMITER
.