Postgresql 中文操作指南

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 参数,因为仅需要输入参数来确定函数的身份。因此,列出 ININOUTVARIADIC 参数就足够了。

  • argname

    • 参数名称。请注意, DROP FUNCTION 实际上不关注参数名称,因为仅需要参数数据类型就能确定函数的身份。

  • argtype

    • 如果存在,函数的参数的数据类型(可选的架构限定)。

  • CASCADE

    • 自动删除依赖于该函数的对象(比如操作符或触发器),依次删除依赖于这些对象的所有对象(请参见 Section 5.14 )。

  • 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 扩展: