删除函数¶
语法:
drop_function ::=
参数:
funcname
是要删除的函数名,函数名必须符合标识符的规则。
argname
参数的名字。请注意DROP FUNCTION实际上并不注意参数的名字,因为判断函数的身份只需要输入参数的数据类型。
IN|OUT|INOUT
IN表示该参数是输入参数。
OUT表示该参数是输出参数。
INOUT表示该参数是输入输出参数。
注意DROP FUNCTION实际上不注意IN|OUT|INOUT参数,只需输入datatype参数
就足够了。
datatype
函数的参数类型。
RESTRICT
默认选项,确保只有不存在依赖关系才可以被删除.
CASCADE
强制删除函数,并删除任何与本函数有依赖性的数据库对象。
示例:删除函数¶
-- 清理环境
DROP FUNCTION func(INT);
create or replace function func(i int)
return SETOF record as
TYPE R1 IS RECORD
(
a int,
b int,
c int
);
TYPE R2 IS RECORD(
a int,
b numeric,
c text
);
retval1 R1;
retval2 R2;
BEGIN
IF i > 10 THEN
SELECT 5, 10, 15 INTO retval1;
RETURN NEXT retval1;
RETURN NEXT retval1;
ELSE
SELECT 50, 5::numeric, 'xxx'::text INTO retval2;
RETURN NEXT retval2;
RETURN NEXT retval2;
END IF;
RETURN;
END;
/
select * from func(1500) AS (a int, b int, c int);
A(int) |B(int) |C(int) |
------------------------------------
5 |10 |15 |
------------------------------------
5 |10 |15 |
总数目:2
--删除过程
DROP FUNCTION func(INT);