Wissensdatenbank
1 000 FAQs, 500 Anleitungen und erläuternde Videos. Hier gibt es nur Lösungen!
Eine MySQL-Funktion auf einem Cloud-Server erstellen
Dieser Leitfaden beschreibt die Verwendung von DELIMITER zum Erstellen von MySQL-Funktionen auf dem Cloud Server von Infomaniak.
Einleitung
- Bei der Erstellung von Funktionen oder gespeicherten Prozeduren in MySQL ist es entscheidend, die Rolle der Trennzeichen zu verstehen.
- Die korrekte Verwendung von Trennzeichen ist unerlässlich, um Syntaxfehler zu vermeiden, die aufgrund des Vorhandenseins mehrerer SQL-Anweisungen in einer einzigen Funktions- oder Prozedurdefinition auftreten können.
Das Trennzeichen verstehen
Ein Trennzeichen ist ein Zeichen oder eine Zeichenfolge, die verwendet wird, um SQL-Anweisungen in einem Skript zu trennen. Standardmäßig verwendet MySQL das Semikolon (;) als Trennzeichen. Wenn jedoch Funktionen, gespeicherte Prozeduren oder Trigger erstellt werden, die mehrere SQL-Anweisungen enthalten, ist es erforderlich, das Trennzeichen vorübergehend zu ändern, um Syntaxfehler zu vermeiden.
Wenn Sie eine Funktion, Prozedur oder einen Trigger erstellen, müssen Sie oft mehrere SQL-Anweisungen innerhalb des BEGIN...END-Blocks verwenden. Da das Semikolon (;) auch zum Beenden dieser internen Anweisungen verwendet wird, könnte MySQL das erste Semikolon als Ende der Funktionsdefinition interpretieren, was zu einem Syntaxfehler führen würde. Um dieses Problem zu umgehen, müssen Sie den Trennzeichen während der Funktionsdefinition ändern.
Erstellen einer einfachen Funktion mit benutzerdefinierten Trennzeichen
Bevor Sie die Funktion definieren, müssen Sie MySQL mitteilen, dass Sie ein anderes Trennzeichen verwenden werden. Im folgenden Beispiel wird $$ als neues Trennzeichen verwendet:
DELIMITER $$Mit dem neuen Trennzeichen können Sie nun Ihre Funktion definieren. Die Anweisung CREATE FUNCTION enthält den Funktionskörper, in dem Sie interne SQL-Anweisungen verwenden können, die durch Semikolons getrennt sind, ohne dass dies zu Problemen führt:
CREATE FUNCTION hello_world()
RETURNS TEXT
LANGUAGE SQL
BEGIN
RETURN 'Hello World';
END;
$$In diesem Beispiel:
CREATE FUNCTION hello_world(): deklariert den Beginn der Definition der Funktionhello_world.RETURNS TEXT: Gibt den Datentyp an, den die Funktion zurückgibt.LANGUAGE SQL: Zeigt an, dass die für die Funktion verwendete Sprache SQL ist.BEGIN ... END: umschließt den Code der Funktion. Innerhalb wird das Semikolon verwendet, um die SQL-Anweisungen zu trennen.RETURN 'Hello World';: SQL-Anweisung, die die ZeichenketteHello Worldzurückgibt.
Nachdem Sie die Funktion definiert haben, setzen Sie das Trennzeichen wieder auf seinen Standardwert (das Semikolon). Dadurch können Sie in Ihren nachfolgenden Skripten weiterhin die üblichen SQL-Anweisungen ausführen:
DELIMITER ;Link zu dieser FAQ: https://faq.infomaniak.com/1150
War diese FAQ nützlich?