1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Eine MySQL-Funktion auf Cloud-Server erstellen
Diese Anleitung beschreibt die Verwendung von DELIMITER
zum Erstellen von MySQL-Funktionen auf Serveur Cloud Infomaniak.
Vorwort
- Beim Erstellen von Funktionen oder gespeicherten Prozeduren in MySQL ist es entscheidend, die Bedeutung 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.
Den Delimiter verstehen
Ein Delimiter ist ein Zeichen oder eine Zeichenfolge, die verwendet wird, um SQL-Anweisungen in einem Skript zu trennen. 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 verwendet wird, um diese internen Anweisungen zu beenden, 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 Sie eine einfache Funktion mit benutzerdefinierten Begrenzern
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 Anfang der Definition der Funktionhello_world
an.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 Code der Funktion ein. Innerhalb dieses Blocks wird das Semikolon verwendet, um die SQL-Anweisungen zu trennen.RETURN 'Hello World';
: SQL-Anweisung, die die ZeichenketteHello World
zurückgibt.
Nach der Definition der Funktion den Begrenzer auf seinen Standardwert (das Semikolon) zurücksetzen. Dadurch können Sie weiterhin die üblichen SQL-Anweisungen in Ihren folgenden Skripten ausführen:
DELIMITER ;