DROP FUNCTION

DROP FUNCTION —删除功能

Synopsis

DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
    [ CASCADE | RESTRICT ]

Description

DROP FUNCTION删除现有功能的定义。要执行此命令,用户必须是该函数的所有者。必须指定函数的参数类型,因为可以存在多个具有相同名称和不同参数列表的不同函数。

Parameters

  • IF EXISTS

    • 如果该函数不存在,请不要引发错误。在这种情况下发出通知。
  • name

    • 现有函数的名称(可选的模式限定)。如果未指定参数列表,则名称在其架构中必须唯一。
  • argmode

    • 参数的模式:INOUTINOUTVARIADIC。如果省略,则默认值为IN。注意DROP FUNCTION实际上并没有注意OUT参数,因为只需要 Importing 参数即可确定函数的身份。因此,列出ININOUTVARIADIC参数就足够了。
  • 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选项

  • 指定参数模式和名称的能力

See Also

CREATE FUNCTION, ALTER FUNCTION, DROP PROCEDURE, DROP ROUTINE