可加载函数,顾名思义,必须加载到服务器中才能使用。MySQL 支持在服务器启动时自动加载函数,然后手动加载。
加载可加载函数时,有关它的信息可用,如 第 5.6.2 节“获取有关可加载函数的信息”中所述。
要手动加载可加载函数,请使用该
CREATE
FUNCTION
语句。例如:
CREATE FUNCTION metaphon
RETURNS STRING
SONAME 'udf_example.so';
文件基本名称取决于您的平台。通用后缀
.so
用于 Unix 和类 Unix 系统,
.dll
用于 Windows。
CREATE
FUNCTION
具有以下效果:
它将函数加载到服务器中以使其立即可用。
它在系统表中注册该函数,
mysql.func
以使其在服务器重启后保持不变。为此,CREATE FUNCTION
需要 系统数据库 的INSERT
权限 。mysql
可加载函数的自动加载发生在正常的服务器启动序列期间。服务器加载mysql.func
表中注册的函数。如果服务器以该
--skip-grant-tables
选项启动,则表中注册的功能不会加载且不可用。
要删除可加载函数,请使用该
DROP
FUNCTION
语句。例如:
DROP FUNCTION metaphon;
DROP
FUNCTION
具有以下效果:
它卸载函数以使其不可用。
它从
mysql.func
系统表中删除函数。为此,DROP FUNCTION
需要 系统数据库的DELETE
权限 。mysql
由于该函数不再在mysql.func
表中注册,服务器在随后的重新启动期间不会加载该函数。
加载可加载函数时,有关它的信息可从mysql.func
系统表中获得。请参阅第 5.6.2 节,“获取有关可加载函数的信息”。
CREATE
FUNCTION
将函数添加到表中并将
DROP
FUNCTION
其删除。
要重新安装或升级与可加载函数关联的共享库,请发出
DROP
FUNCTION
语句,升级共享库,然后发出
CREATE
FUNCTION
语句。如果先升级共享库再使用
DROP
FUNCTION
,服务器可能会意外关闭。