El DELIMITER
El comando es un cliente shell de MySQL incorporado, y solo lo reconoce ese programa (y MySQL Query Browser). No es necesario usar DELIMITER
si ejecuta sentencias SQL directamente a través de una API.
El propósito de DELIMITER
es para ayudarlo a evitar la ambigüedad sobre la terminación de CREATE FUNCTION
declaración, cuando la declaración en sí puede contener caracteres de punto y coma. Esto es importante en el cliente de shell, donde, de forma predeterminada, un punto y coma termina una instrucción SQL. Debe configurar el terminador de declaración en algún otro carácter para enviar el cuerpo de una función (o disparador o procedimiento).
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
Dado que la API generalmente le permite enviar una declaración SQL a la vez, no hay ambigüedad:la interfaz sabe que cualquier punto y coma dentro del cuerpo de la definición de su función no termina todo CREATE FUNCTION
declaración. Así que no hay necesidad de cambiar el terminador de declaración con DELIMITER
.