On this page
DROP FUNCTION
DROP FUNCTION —删除功能
Synopsis
DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
[ CASCADE | RESTRICT ]
Description
DROP FUNCTION
删除现有功能的定义。要执行此命令,用户必须是该函数的所有者。必须指定函数的参数类型,因为可以存在多个具有相同名称和不同参数列表的不同函数。
Parameters
IF EXISTS
- 如果该函数不存在,请不要引发错误。在这种情况下发出通知。
name
- 现有函数的名称(可选的模式限定)。如果未指定参数列表,则名称在其架构中必须唯一。
argmode
- 参数的模式:
IN
,OUT
,INOUT
或VARIADIC
。如果省略,则默认值为IN
。注意DROP FUNCTION
实际上并没有注意OUT
参数,因为只需要 Importing 参数即可确定函数的身份。因此,列出IN
,INOUT
和VARIADIC
参数就足够了。
- 参数的模式:
argname
- 参数的名称。注意
DROP FUNCTION
实际上并没有注意参数名称,因为只需要参数数据类型即可确定函数的身份。
- 参数的名称。注意
argtype
- 函数参数的数据类型(可选,通过模式限定)(如果有)。
CASCADE
- 自动删除依赖于功能的对象(例如运算符或触发器),并依次删除依赖于这些对象的所有对象(请参见Section 5.13)。
RESTRICT
- 如果有任何对象依赖该函数,则拒绝删除该函数。这是默认值。
Examples
此命令删除平方根函数:
DROP FUNCTION sqrt(integer);
在一个命令中删除多个功能:
DROP FUNCTION sqrt(integer), sqrt(bigint);
如果函数名称在其模式中是唯一的,则可以在不带参数列表的情况下进行引用:
DROP FUNCTION update_employee_salaries;
请注意,这与
DROP FUNCTION update_employee_salaries();
它引用的参数为零的函数,而第一个变体可以引用的参数为任意数量的函数,包括零,只要名称是唯一的即可。
Compatibility
此命令符合 SQL 标准,具有以下 PostgreSQL 扩展:
该标准仅允许每个命令删除一个功能。
IF EXISTS
选项指定参数模式和名称的能力