CREATE [AGGREGATE] FUNCTIONfunction_nameRETURNS {STRING|INTEGER|REAL} SONAMEshared_library_nameDROP FUNCTIONfunction_name
        Una funciones definidas por el usuario (UDF) es un modo de
        extender MySQL con una nueva función que funciona como una
        función nativa de MySQL tal como ABS() o
        CONCAT().
      
        function_name es el nombre que debe
        usarse en comandos SQL para invocar la función. La cláusula
        RETURNS indica el tipo del valor de retorno
        de la función. shared_library_name
        es el nombre base de la fichero del objeto compartido que
        contiene el código que implementa la función. El fichero debe
        localizarse en un directorio en el que busque el lincador
        dinámico del sistema.
      
        Para crear una función , debe tener el privilegio
        INSERT para la base de datos
        mysql . Para borrar una función, debe tener
        el privilegio DELETE para la base de datos
        mysql . Esto es así porque CREATE
        FUNCTION añade un registro a la tabla de sistema
        mysql.func que registra los nombres de
        función, tipo, y nombre de la biblioteca compartida, y
        DROP FUNCTION borra el registro de la
        función de dicha tabla. Si no tiene esta tabla, debe ejecutar
        el script mysql_fix_privilege_tables para
        crearla. Consulte Sección 2.10.2, “Aumentar la versión de las tablas de privilegios”.
      
        Una función activa es una que se ha cargado con CREATE
        FUNCTION y no se ha eliminado con DROP
        FUNCTION. Todas las funciones activas se recargan cada
        vez que el servidor arranca, a no ser que arranque
        mysqld con la opción
        --skip-grant-tables . En este caso, la
        inicialización de UDF no se hace y no están disponibles.
      
Para instrucciones sobre escribir funciones definidas por el usuario consulte Sección 27.2.3, “Añadir una nueva función definida por el usuario”. Para que funcione el mecanismo de UDF, las funciones deben escribirse en C o C++, su sistema operativo debe soportar carga dinámica y debe haber compilado mysqld dinámicamente (no estáticamente).
        AGGREGATE es una nueva opción para MySQL
        3.23. Una función AGGREGATE funciona
        exactamente como una función agregada (resumen) de MySQL tal
        como SUM o COUNT(). Para
        que funcione AGGREGATE , su tabla
        mysql.func debe contener una columna
        type . Si su tabla
        mysql.func no tiene esta columna, debe
        ejecutar el script mysql_fix_privilege_tables
        para crearla.
      
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

