CREATE [AGGREGATE] FUNCTIONfunction_nameRETURNS {STRING|INTEGER|REAL|DECIMAL} SONAMEshared_library_name
        Mit benutzerdefinierten Funktionen (UDFs) können Sie MySQL um
        neue Funktionen erweitern, die wie native (eingebaute)
        MySQL-Funktionen wie etwa ABS() oder
        CONCAT() funktionieren.
      
        function_name ist der Name, mit dem
        die Funktion in SQL-Anweisungen aufgerufen wird. Die
        RETURNS-Klausel zeigt den Rückgabetyp der
        Funktion an. DECIMAL ist zwar hinter
        RETURNS zulässig, aber gegenwärtig geben
        DECIMAL-Funktionen String-Werte zurück und
        sollten daher wie STRING-Funktionen
        geschrieben werden.
      
        shared_library_name ist der Basisname
        der Shared Object-Datei, die den Code zur Implementierung der
        Funktion enthält. Diese Datei muss im Plug-In-Verzeichnis
        liegen, welches durch den Wert der Systemvariablen
        plugin_dir vorgegeben ist.
        (Hinweis: Dies ist eine
        Änderung in MySQL 5.1. In früheren Versionen von MySQL konnte
        die Shared Object-Datei in jedem beliebigen Verzeichnis liegen,
        das der dynamische Linker des Systems untersuchte.)
      
        Zur Erstellung einer Funktion benötigen Sie das
        INSERT-Recht für die
        mysql-Datenbank, da CREATE
        FUNCTION in die Systemtabelle
        mysql.func eine Zeile mit dem Namen, Typ und
        Shared Library-Namen der Funktion einfügt. Wenn diese Tabelle
        bei Ihnen fehlt, müssen Sie sie mit dem Skript
        mysql_fix_privilege_tables anlegen. Siehe
        Abschnitt 5.6, „mysql_fix_privilege_tables — Upgrade von MySQL-Systemtabellen“.
      
        Eine aktive Funktion ist eine Funktion, die mit CREATE
        FUNCTION geladen, aber nicht mit DROP
        FUNCTION wieder gelöscht wurde. Alle aktiven
        Funktionen werden bei jedem Serverstart neu geladen, es sei
        denn, Sie starten mysqld mit der Option
        --skip-grant-tables. In diesem Fall wird die
        UDF-Initialisierung übersprungen und die UDFs stehen nicht zur
        Verfügung.
      
Anleitungen zum Schreiben benutzerdefinierter Funktionen finden Sie unter Abschnitt 26.3.4, „Hinzufügen einer neuen benutzerdefinierten Funktion“. Damit der UDF-Mechanismus funktioniert, müssen die Funktionen in C oder C++ geschrieben sein, Ihr Betriebssystem muss dynamisches Laden unterstützen, und Sie müssen mysqld dynamisch (nicht statisch) kompiliert haben.
        Eine AGGREGATE-Funktion funktioniert genau
        wie eine native MySQL-Aggregatfunktion (Summenfunktion), wie
        beispielsweise SUM oder
        COUNT(). Damit AGGREGATE
        funktioniert, muss Ihre mysql.func-Tabelle
        eine type-Spalte enthalten. Wenn Ihre
        mysql.func-Tabelle diese Spalte nicht hat,
        müssen Sie sie mit dem Skript
        mysql_fix_privilege_tables erzeugen.
      
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.

