PostgreSQL:如果存在函数而不指定参数,如何删除该函数?

PostgreSQL:如果存在函数而不指定参数,如何删除该函数?,postgresql,plpgsql,Postgresql,Plpgsql,我可以成功创建一个函数,如下所示: CREATE FUNCTION Foo(MY_Value INT) RETURNS INT AS 'SELECT 2 + MY_Value' LANGUAGE SQL 但是,如果我首先要检查函数是否存在,然后如果存在就删除它,则必须指定以下内容: DROP FUNCTION IF EXISTS Foo(My_Value INT); 在不指定输入参数的情况下,下面返回一个错误,声明“注意:函数foo()不存在,正在跳过” 与MySQL类似,是否有一种方法可以

我可以成功创建一个函数,如下所示:

CREATE FUNCTION Foo(MY_Value INT) RETURNS INT
AS 'SELECT 2 + MY_Value'
LANGUAGE SQL
但是,如果我首先要检查函数是否存在,然后如果存在就删除它,则必须指定以下内容:

DROP FUNCTION IF EXISTS Foo(My_Value INT);
在不指定输入参数的情况下,下面返回一个错误,声明“注意:函数foo()不存在,正在跳过”

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

在Postgres函数中,参数是区分重载函数所必需的。要明确地标识函数,您可以只放置其参数的类型

DROP FUNCTION IF EXISTS Foo(INT);

从Postgres 10开始,您只能按名称删除函数,只要名称对其模式是唯一的

例如:

drop function if exists Foo;
文件

DROP FUNCTION IF EXISTS Foo(INT);
drop function if exists Foo;