Skip to main content

DROP FUNCTION

使用 DROP FUNCTION 命令删除现有的 用户定义函数(UDF)

句法

DROP FUNCTION function_name [ ( argument_type [, ...] ) ] ;
参数或子句描述
function_name要删除的 UDF 的名称。
( argument_type [ , ... ] )可选:函数的参数类型。
当要删除的函数名称在 schema 中不唯一时,请指定参数类型。

用法

可以使用以下方法删除函数:

  • 完整的函数签名:

    DROP FUNCTION function_name ( argument_type [, ...] ); 
  • 如果函数在 schema 中是唯一的,则仅使用函数名:

    DROP FUNCTION function_name;

    您可以运行 SHOW FUNCTIONS; 列出所有现有的 UDF,查看函数名称是否唯一。

tip

DROP FUNCTION function_name(); 可删除无参函数。

只要函数名称是唯一的,DROP FUNCTION function_name; 可删除参数数量为任意值(包括零)的函数。

示例

首先,让我们 创建一些函数.

CREATE FUNCTION f1() RETURNS real LANGUAGE python AS func1 USING LINK 'http://localhost:8815';
CREATE FUNCTION f1(int) RETURNS int LANGUAGE python AS func2 USING LINK 'http://localhost:8815';
CREATE FUNCTION f1(int,int) RETURNS int LANGUAGE python AS func3 USING LINK 'http://localhost:8815';
CREATE FUNCTION f2(int,int) RETURNS int LANGUAGE python AS func4 USING LINK 'http://localhost:8815';

您可以通过函数名称删除唯一的函数:

DROP FUNCTION f2;

当函数名称不唯一时,无法通过函数名称删除函数:

DROP FUNCTION f1;
ERROR:  QueryError: Catalog error: function name "f1" is not unique
HINT: Specify the argument list to select the function unambiguously.

可以通过完整签名删除函数:

DROP FUNCTION f1();
DROP FUNCTION f1(int);

现在,f1(int,int) 是唯一命名为 f1 的函数,您可以通过函数名称或完整签名将其删除:

DROP FUNCTION f1; 
-- Or DROP FUNCTION f1(int,int);

另请参阅

用户定义函数 — 在 RisingWave 中使用 UDF 的逐步指南:安装 RisingWave UDF API、在 Python 文件中定义函数、启动 UDF 服务器以及在 RisingWave 中声明 UDF。

SHOW FUNCTIONS — 显示所有现有的 UDF。