1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
MySQL-Funktion auf Cloud-Server erstellen
Dieser Leitfaden beschreibt die Verwendung von DELIMITER zum Erstellen von MySQL-Funktionen auf einem Infomaniak Cloud-Server.
Vorwort
- Beim Erstellen von Funktionen oder gespeicherten Prozeduren in MySQL ist es wichtig, die Rolle der Delimiter zu verstehen.
- Die korrekte Verwendung von Delimitern ist entscheidend, um Syntaxfehler zu vermeiden, die durch die Anwesenheit mehrerer SQL-Anweisungen in einer einzigen Funktions- oder Prozedurdefinition auftreten können.
Verstehen des Delimiters
Ein Delimiter ist ein Zeichen oder eine Zeichenfolge, die zum Trennen von SQL-Anweisungen in einem Skript verwendet wird. Standardmäßig verwendet MySQL das Semikolon (;) als Delimiter. Wenn Sie jedoch Funktionen, gespeicherte Prozeduren oder Trigger erstellen, die mehrere SQL-Anweisungen enthalten, müssen Sie den Delimiter vorübergehend ändern, um Syntaxfehler zu vermeiden.
Wenn Sie eine Funktion, Prozedur oder einen Trigger erstellen, müssen Sie oft mehrere SQL-Anweisungen innerhalb des Blocks BEGIN...END verwenden. Da das Semikolon (;) auch zum Beenden dieser internen Anweisungen verwendet wird, könnte MySQL das erste Semikolon als das Ende der Funktionsdefinition interpretieren, was zu einem Syntaxfehler führen würde. Um dieses Problem zu umgehen, müssen Sie den Delimiter während der Funktionsdefinition ändern.
Erstellen einer einfachen Funktion unter Verwendung von benutzerdefinierten Delimitern
Bevor Sie die Funktion definieren, müssen Sie MySQL mitteilen, dass Sie einen anderen Delimiter verwenden werden. Im folgenden Beispiel wird $$ als neuer Delimiter verwendet:
DELIMITER $$Mit dem neuen Delimiter können Sie nun Ihre Funktion definieren. Der CREATE FUNCTION enthält den Funktionskörper, in dem Sie interne SQL-Anweisungen verwenden können, die durch Semikolons getrennt sind, ohne dass dies ein Problem darstellt:
CREATE FUNCTION hello_world()
RETURNS TEXT
LANGUAGE SQL
BEGIN
RETURN 'Hello World';
END;
$$In diesem Beispiel:
CREATE FUNCTION hello_world(): gibt den Beginn der Definition der Funktionhello_worldan.RETURNS TEXT: gibt den Datentyp an, den die Funktion zurückgibt.LANGUAGE SQL: gibt an, dass die für die Funktion verwendete Sprache SQL ist.BEGIN ... END: kapselt den Funktionscode. Innerhalb davon wird das Semikolon verwendet, um die SQL-Anweisungen zu trennen.RETURN 'Hello World';: SQL-Anweisung, die die ZeichenfolgeHello Worldzurückgibt.
Nach der Definition der Funktion den Delimiter auf seinen Standardwert (das Semikolon) zurücksetzen. Dadurch können Sie weiterhin die üblichen SQL-Anweisungen in Ihren folgenden Skripten ausführen:
DELIMITER ;