MySQL - 用户自定义函数的 CREATE FUNCTION 语句



函数是一段组织良好的、可重用的代码块,用于执行单个相关的操作。函数为您的应用程序提供了更好的模块化和高度的代码重用性。

MySQL 提供了一套内置函数,用于执行特定任务,例如 CURDATE() 函数返回当前日期。

除了存储函数外,您还可以使用 CREATE FUNCTION 语句创建和加载用户自定义函数到 MySQL 服务器。要执行此函数,您需要 INSERT 权限。

语法

以下是用户自定义函数的 CREATE FUNCTION 语句的语法:

CREATE [AGGREGATE] FUNCTION function_name
   RETURNS {STRING|INTEGER|REAL|DECIMAL}
   SONAME shared_library_name

其中,`function_name` 是您需要创建的函数的名称,`shared_library_name` 是包含所需用户自定义函数代码的库文件的名称。

示例

假设我们有一个名为 udf.dll 的 UDF 文件,其中包含一个名为 sample 的函数。以下查询将 UDF 函数添加到 MySQL:

CREATE FUNCTION sample RETURNS INTEGER soname 'udf.dll';

您可以使用以下查询验证 UDF 是否已安装:

select * from mysql.func where name = 'sys_exec';

输出

以下是上述 MySQL 查询的输出:

名称 (name) 返回值 (ret) 库文件 (dl) 类型 (type)
sample 2 udf.dll 函数 (function)

如果要创建/加载聚合函数,可以指定 AGGREGATE 子句。根据要加载的函数的返回值,您可以指定各种返回值类型,例如 STRING、INTEGER、REAL、DECIMAL。

以下是将用户自定义函数加载到 MYSQL 的更多查询:

CREATE FUNCTION metaphon RETURNS STRING SONAME "udf_example.dll";
CREATE FUNCTION myfunc_double RETURNS REAL SONAME "udf_example.dll";
CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "udf_example.dll";
CREATE FUNCTION sequence RETURNS INTEGER SONAME "udf_example.dll";
CREATE AGGREGATE FUNCTION avgcost RETURNS REAL SONAME "udf_example.dll";
广告
© . All rights reserved.