[+/-]
Es gibt zwei Möglichkeiten, neue Funktionen zu MySQL hinzuzufügen:
Die erste Möglichkeit ist die Schnittstelle für
benutzerdefinierte Funktionen (User-Defined Functions, UDFs).
Benutzerdefinierte Funktionen werden als Objektdateien
kompiliert und dann dynamisch mit den Anweisungen
CREATE FUNCTION
und DROP
FUNCTION
auf den Server geladen oder von ihm
entfernt. Siehe auch Abschnitt 26.3.2, „CREATE FUNCTION/DROP FUNCTION
“.
Die zweite Möglichkeit: Sie fügen die Funktionen als native (eingebaute) MySQL-Funktionen hinzu. Native Funktionen werden in den mysqld-Server kompiliert und stehen dann dauerhaft zur Verfügung.
Beide Methoden haben ihre Vor- und Nachteile:
Wenn Sie benutzerdefinierte Funktionen schreiben, müssen Sie zusätzlich zum Server auch noch Objektdateien installieren. Wenn Sie Ihre Funktion in den Server kompilieren, entfällt das.
Um native Funktionen zu erstellen, müssen Sie eine Quelldistribution ändern; für UDFs müssen Sie das nicht. UDFs können Sie auch einer Binärdistribution von MySQL hinzufügen, ohne in den Quellcode von MySQL eingreifen zu müssen.
Wenn Sie Ihre MySQL-Distribution aufrüsten, können Sie die zuvor installierten UDFs auch weiterhin nutzen, es sei denn, die neue Version ist eine, bei der sich die UDF-Schnittstelle geändert hat. Für native Funktionen müssen Sie Ihre Modifikationen bei jedem Upgrade wiederholen.
Ganz gleich, welchen Weg Sie einschlagen, um neue Funktionen
hinzuzufügen: Aufgerufen werden sie in SQL-Anweisungen nicht
anders als native Funktionen, wie zum Beispiel
ABS()
oder SOUNDEX()
.
Auch gespeicherte Funktionen bieten die Möglichkeit, Funktionen hinzuzufügen. Gespeicherte Funktionen schreiben Sie in SQL-Anweisungen, anstatt sie in den Objektcode zu kompilieren. Die Syntax für gespeicherte Funktionen wird in Kapitel 19, Gespeicherte Prozeduren und Funktionen, beschrieben.
Die folgenden Abschnitte beschreiben Features der UDF-Schnittstelle, geben Anleitungen zum Schreiben von UDFs, erläutern Sicherheitsmaßnahmen, mit denen MySQL den Missbrauch von UDFs verhindert, und erklären, wie native MySQL-Funktionen hinzugefügt werden.
Quellcode, der zeigt, wie man UDFs schreibt, finden Sie in der
Datei sql/udf_example.cc
, die in den
MySQL-Quelldistributionen enthalten ist.
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.