Le DELIMITER
La commande est un client shell MySQL intégré, et elle n'est reconnue que par ce programme (et MySQL Query Browser). Il n'est pas nécessaire d'utiliser DELIMITER
si vous exécutez des instructions SQL directement via une API.
Le but de DELIMITER
est de vous aider à éviter toute ambiguïté sur la fin de la CREATE FUNCTION
instruction, lorsque l'instruction elle-même peut contenir des points-virgules. Ceci est important dans le client shell, où par défaut un point-virgule termine une instruction SQL. Vous devez définir le terminateur d'instruction sur un autre caractère afin de soumettre le corps d'une fonction (ou d'un déclencheur ou d'une procédure).
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
Étant donné que l'API vous permet généralement de soumettre une instruction SQL à la fois, il n'y a aucune ambiguïté - l'interface sait que tout point-virgule à l'intérieur du corps de votre définition de fonction ne termine pas l'ensemble de CREATE FUNCTION
déclaration. Il n'est donc pas nécessaire de modifier le terminateur de l'instruction avec DELIMITER
.