Loadable functions, as the name implies, must be loaded into the server before they can be used. MySQL supports automatic function loading during server startup and manual loading thereafter.
While a loadable function is loaded, information about it is available as described in Section 5.6.2, “Obtaining Information About Loadable Functions”.
To load a loadable function manually, use the
CREATE
FUNCTION
statement. For example:
CREATE FUNCTION metaphon
RETURNS STRING
SONAME 'udf_example.so';
The file base name depends on your platform. Common suffixes are
.so
for Unix and Unix-like systems,
.dll
for Windows.
CREATE
FUNCTION
has these effects:
It loads the function into the server to make it available immediately.
It registers the function in the
mysql.func
system table to make it persistent across server restarts. For this reason,CREATE FUNCTION
requires theINSERT
privilege for themysql
system database.
Automatic loading of loadable functions occurs during the normal
server startup sequence. The server loads functions registered
in the mysql.func
table. If the server is
started with the
--skip-grant-tables
option,
functions registered in the table are not loaded and are
unavailable.
To remove a loadable function, use the
DROP
FUNCTION
statement. For example:
DROP FUNCTION metaphon;
DROP
FUNCTION
has these effects:
It unloads the function to make it unavailable.
It removes the function from the
mysql.func
system table. For this reason,DROP FUNCTION
requires theDELETE
privilege for themysql
system database. With the function no longer registered in themysql.func
table, the server does not load the function during subsequent restarts.
While a loadable function is loaded, information about it is
available from the mysql.func
system table.
See Section 5.6.2, “Obtaining Information About Loadable Functions”.
CREATE
FUNCTION
adds the function to the table and
DROP
FUNCTION
removes it.
To reinstall or upgrade the shared library associated with a
loadable function, issue a
DROP
FUNCTION
statement, upgrade the shared library, and
then issue a
CREATE
FUNCTION
statement. If you upgrade the shared library
first and then use
DROP
FUNCTION
, the server may unexpectedly shut down.