PostgreSQL:如何在不指定参数的情况下 DROP FUNCTION IF EXISTS?
·
问题:PostgreSQL:如何在不指定参数的情况下 DROP FUNCTION IF EXISTS?
我可以成功创建一个函数,如下所示:
CREATE FUNCTION Foo(MY_Value INT) RETURNS INT
AS 'SELECT 2 + MY_Value'
LANGUAGE SQL
但是,如果我首先要检查函数是否存在,如果存在则删除它,我必须指定以下内容:
DROP FUNCTION IF EXISTS Foo(My_Value INT);
在不指定输入参数的情况下,以下返回错误说明“注意:函数 foo() 不存在,正在跳过”
DROP FUNCTION IF EXISTS Foo();
与 MySQL 类似,有没有办法在 PostgreSQL 中删除 FUNCTION 而无需指定函数的参数?换句话说,在 MySQL 语句中是否有以下等效项(即,在不指定输入参数的情况下删除存储过程)?
DROP PROCEDURE IF EXISTS Foo;
解答
在 Postgres 中的函数可以被重载,所以需要参数来区分重载的函数。为了明确地识别一个函数,你可以只输入它的参数类型。
DROP FUNCTION IF EXISTS Foo(INT);
更多推荐
所有评论(0)