• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • MySQL服务器支持用户自定义函数

    MySQL Server允许创建用户自定义的函数(UDF)并将其加载到服务器中以扩展服务器功能。服务器功能可以使用UDF全部或部分实现。此外,您可以编写自己的UDF。

    以下各节描述如何安装和卸载UDF,以及如何在运行时确定安装了哪些UDF并获取有关它们的信息。有关编写UDF的信息,


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

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

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

    CREATE FUNCTION metaphon
    RETURNS 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表”。