Das DELIMITER
Der Befehl ist ein eingebauter MySQL-Shell-Client und wird nur von diesem Programm (und dem MySQL-Abfrage-Browser) erkannt. Es ist nicht notwendig, DELIMITER
zu verwenden wenn Sie SQL-Anweisungen direkt über eine API ausführen.
Der Zweck von DELIMITER
soll Ihnen dabei helfen, Unklarheiten bezüglich der Beendigung der CREATE FUNCTION
zu vermeiden -Anweisung, wenn die Anweisung selbst Semikolons enthalten kann. Dies ist im Shell-Client wichtig, wo standardmäßig ein Semikolon eine SQL-Anweisung abschließt. Sie müssen das Abschlusszeichen der Anweisung auf ein anderes Zeichen setzen, um den Hauptteil einer Funktion (oder eines Triggers oder einer Prozedur) zu übermitteln.
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 die API Ihnen normalerweise erlaubt, jeweils nur eine SQL-Anweisung zu übermitteln, gibt es keine Zweideutigkeit – die Schnittstelle weiß, dass Semikolons innerhalb des Hauptteils Ihrer Funktionsdefinition nicht die gesamte CREATE FUNCTION
beenden Erklärung. Es besteht also keine Notwendigkeit, das Abschlusszeichen der Anweisung mit DELIMITER
zu ändern .