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



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

MySQL 提供了一组内置函数,这些函数执行特定的任务,例如 CURDATE() 函数返回当前日期。除了存储函数之外,您还可以使用 CREATE FUNCTION 语句创建加载用户定义的函数。

MySQL DROP FUNCTION 语句

MySQL DROP FUNCTION 语句用于删除/删除添加到服务器的此类用户定义(可加载)函数。要执行此函数,您需要 DELETE 权限。

语法

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

DROP FUNCTION [IF EXISTS] function_name

其中,function_name 是您需要删除的可加载函数的名称。

示例

假设我们有一个名为 udf.dll 的 UDF 文件,其中包含一个函数 sample,并且我们已使用 CREATE FUNCTION 语句将其加载到 MYSQL 中,如下所示:

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

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

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

输出

以下是上述查询的输出:

名称 返回类型 类型
sys_exec 2 udf.dll 函数

以下查询使用 DROP FUNCTION 语句删除上面创建的函数:

DROP FUNCTION sample;

由于我们已删除创建的函数,如果您再次执行上述 SELECT 查询,您将得到一个空集。

select * from mysql.func where name = 'sample';
Empty set (0.06 sec)

示例

让我们将用户定义的函数创建/加载到 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";

以下查询集删除所有上述函数:

DROP FUNCTION metaphon;
DROP FUNCTION myfunc_double;
DROP FUNCTION myfunc_int;
DROP FUNCTION sequence;
DROP FUNCTION avgcost;

如果您尝试删除不存在的函数,则会生成错误,如下所示:

DROP FUNCTION demo;
ERROR 1305 (42000): FUNCTION test.demo does not exist

如果您在 DROP FUNCTION 语句中使用 **IF EXISTS** 子句,如下所示,则将删除指定的函数,如果不存在具有给定名称的函数,则该查询将被忽略。

DROP FUNCTION IF EXISTS demo;
广告

© . All rights reserved.