MySQL服务器支持用户自定义函数
MySQL Server允许创建用户自定义的函数(UDF)并将其加载到服务器中以扩展服务器功能。服务器功能可以使用UDF全部或部分实现。此外,您可以编写自己的UDF。
以下各节描述如何安装和卸载UDF,以及如何在运行时确定安装了哪些UDF并获取有关它们的信息。有关编写UDF的信息,
安装和卸载用户自定义的功能
必须先将用户自定义的函数(UDF)装入服务器,然后才能使用它们。MySQL支持在运行时加载UDF。
要加载UDF,请使用以下CREATE FUNCTION
语句。例如:
CREATE FUNCTION metaphonRETURNS STRING SONAME 'udf_example.so';
UDF文件的基本名称取决于您的平台。通用后缀适用.so
于Unix和类Unix系统,.dll
适用于Windows。
加载UDF时,可以从Performance Schema user_defined_functions
表中获得有关它的信息。
CREATE FUNCTION
还会在mysql.func
系统表中注册UDF,以使服务器在后续重启时将其加载。因此,CREATE FUNCTION
需要系统数据库的INSERT
特权mysql
。
要删除UDF,请使用以下DROP FUNCTION
语句。例如:
DROP FUNCTION metaphon;
DROP FUNCTION
卸载UDF并将其从mysql.func
系统表中删除。因此,DROP FUNCTION
需要系统数据库的DELETE
特权mysql
。如果UDF不再在表中注册,则服务器不会自动加载UDF以进行后续重启。
您不能用于CREATE FUNCTION
重新安装先前已安装的功能。要重新安装功能,请先使用删除它DROP FUNCTION
,然后使用再次安装CREATE FUNCTION
。例如,如果升级到提供该函数的更新实现的MySQL新版本,或者重新编译已编写的函数的新版本,则需要执行此操作。否则,服务器将继续使用旧版本。
如果使用该--skip-grant-tables
选项启动服务器,则它不会查询该mysql.func
表,也不会加载该表中列出的UDF。
获取用户自定义功能信息
性能架构user_defined_functions
表包含有关当前加载的用户自定义函数的信息:
SELECT *FROM performance_schem .user_defined_functions;
有关更多信息,请参见“ user_defined_functions表”。