PostgreSQL:如何在不指定参数的情况下删除 FUNCTION IF EXISTS?

PostgreSQL: How to DROP FUNCTION IF EXISTS without specifying parameters?

我可以成功创建如下函数:

CREATE FUNCTION Foo(MY_Value INT) RETURNS INT
AS 'SELECT 2 + MY_Value'
LANGUAGE SQL

但是,如果我想先检查该函数是否存在,如果存在则将其删除,我必须指定以下内容:

DROP FUNCTION IF EXISTS Foo(My_Value INT);

没有指定输入参数,下面returns报错"NOTICE: function foo() does not exist, skipping"

DROP FUNCTION IF EXISTS Foo();

与MySQL类似,有没有一种方法可以在 PostgreSQL 中删除 FUNCTION 而无需为函数指定参数?换句话说,在 MySQL 语句中是否有以下等效项(即,在不指定输入参数的情况下删除存储过程)?

DROP PROCEDURE IF EXISTS Foo;

在 Postgres 函数中 can be overloaded,所以参数是区分重载函数所必需的。要明确标识一个函数,您可以只输入其参数的类型。

DROP FUNCTION IF EXISTS Foo(INT);

从 Postgres 10 开始,您只能按名称删除函数,只要名称对于它们的架构是唯一的。

示例:

drop function if exists Foo;

文档 here.