608 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
10 MySQL erweitern
10.1 Hinzuf¨ugen neuer Funktionen zu MySQL
Es gibt zwei M¨oglichkeiten, MySQL neue Funktionen hinzuzuf¨ugen:
• Sie k¨onnen die Funktion ¨uber die benutzerdefinierbare Funktions- (UDF-) Schnittstelle
hinzuf¨ugen. Benutzerdefinierbare Funktionen werden dynamisch mittels CREATE
FUNCTION und DROP FUNCTION-Statements hinzugef¨ugt bzw. gel¨oscht. Siehe
Abschnitt 10.1.1 [CREATE FUNCTION], Seite 608.
• Sie k¨onnen die Funktion als native (eingebaute) MySQL-Funktion hinzuf¨ugen. Native
Funktionen werden in den mysqld-Server kompiliert und stehen dann dauerhaft zur
Verf¨ugung.
Jede Methode hat Vorteile und Nachteile:
• Wenn Sie eine benutzerdefinierte Funktion schreiben, m¨ussen Sie die Objekt-Datei
zus¨atzlich zum Server selbst installieren. Wenn Sie Ihre Funktion in den Server einkom-
pilieren, brauchen Sie das nicht zu tun.
• Sie k¨onnen der bin¨aren MySQL-Distribution benutzerdefinierte Funktionen hinzuf¨ugen.
Native Funktionen erfordern, dass Sie eine Quelldistribution ver¨andern.
• Wenn Sie Ihre MySQL-Distribution aktualisieren, k¨onnen Sie weiterhin Ihre vorher
installierten benutzerdefinierten Funktionen benutzen. Bei nativen Funktionen m¨ussen
Sie Ihre
¨
Anderungen jedes Mal wiederholen, wenn Sie aktualisieren.
Gleich welche Methode Sie zum Hinzuf¨ugen neuer Funktionen verwenden, k¨onnen Sie diese
genau wie die nativen Funktionen, z. B. ABS() oder SOUNDEX(), benutzen.
10.1.1 CREATE FUNCTION / DROP FUNCTION-Syntax
CREATE [AGGREGATE] FUNCTION funktion RETURNS {STRING|REAL|INTEGER}
SONAME gemeinsame_bibliothek
DROP FUNCTION funktion
Eine benutzerdefinierte Funktion (UDF) ist eine M¨oglichkeit, MySQL durch eine neue Funk-
tion zu erweitern, die wie die nativen (eingebauten) MySQL-Funktionen, z. B. ABS() und
CONCAT(), funktioniert.
AGGREGATE ist eine neue Option f¨ur MySQL-Version 3.23. Eine AGGREGATE-Funktion funk-
tioniert genau wie eine native MySQL- GROUP-Funktion wie SUM oder COUNT().
CREATE FUNCTION speichert den Funktionnamen, -typ und die gemeinsam genutzte Biblio-
thek in der mysql.func-Systemtabelle. Sie ben¨otigen die insert- und delete-Berechtigungen
f¨ur die mysql-Datenbank, um Funktionen zu erzeugen und zu l¨oschen.
Alle aktiven Funktionen werden jedes Mal wieder geladen, wenn der Server startet, es sei
denn, Sie starten ihn mit der --skip-grant-tables-Option. In diesem Fall wird die UDF-
Initialisierung ¨ubersprungen, so dass UDFs nicht verf¨ugbar sind. (Eine aktive Funktion ist
eine, die mit CREATE FUNCTION geladen und nicht mit DROP FUNCTION entfernt wurde.)
Comentários a estes Manuais