5.6.2 安装和卸载用户定义的功能

必须先将用户定义的函数(UDF)装入服务器,然后才能使用它们。 MySQL 支持在运行时加载 UDF。

要加载 UDF,请使用CREATE FUNCTION语句。例如:

CREATE FUNCTION metaphon
  RETURNS STRING
  SONAME 'udf_example.so';

UDF 文件的基本名称取决于您的平台。通用后缀是.so(对于 Unix 和类 Unix 系统),.dll(对于 Windows)。

加载 UDF 时,可从mysql.func系统 table 中获取有关它的信息。参见第 5.6.3 节“获取用户定义的功能信息”

CREATE FUNCTION还将 UDF 注册到mysql.func系统 table 中,以使服务器在随后的重新启动时加载它。因此,CREATE FUNCTION要求mysql系统数据库具有INSERT特权。

要删除 UDF,请使用DROP FUNCTION语句。例如:

DROP FUNCTION metaphon;

DROP FUNCTION卸载 UDF 并将其从mysql.func系统 table 中删除。因此,DROP FUNCTION要求mysql系统数据库具有DELETE特权。由于 UDF 不再在 table 中注册,因此服务器不会为以后的重新启动自动加载 UDF。

您不能使用CREATE FUNCTION重新安装以前安装的功能。要重新安装功能,请先使用DROP FUNCTION将其删除,然后使用CREATE FUNCTION重新安装。例如,如果升级到提供该函数的更新实现的 MySQL 新版本,或者重新编译已编写的函数的新版本,则需要执行此操作。否则,服务器将 continue 使用旧版本。

如果服务器使用--skip-grant-tables选项启动,则它不会查询mysql.functable,并且不会加载此处列出的 UDF。