2024年9月26日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本:11

DROP ROUTINE

DROP ROUTINE — 删除例程

语法

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

描述

DROP ROUTINE 删除一个或多个现有例程的定义。术语例程包括聚合函数、普通函数和过程。有关参数、更多示例和详细信息的描述,请参见DROP AGGREGATEDROP FUNCTIONDROP PROCEDURE

注释

DROP ROUTINE 使用的查找规则与DROP PROCEDURE的基本相同;特别是,DROP ROUTINE 共享该命令的行为,即认为没有argmode标记的参数列表可能使用了 SQL 标准的定义,即OUT参数包含在列表中。(DROP AGGREGATEDROP FUNCTION不会这样做。)

在某些情况下,如果不同类型的例程共享相同的名称,则DROP ROUTINE可能会因歧义错误而失败,而更具体的命令(DROP FUNCTION等)则可以正常工作。更仔细地指定参数类型列表也可以解决此类问题。

这些查找规则也用于其他作用于现有例程的命令,例如ALTER ROUTINECOMMENT ON ROUTINE

示例

删除类型为integer的例程foo

DROP ROUTINE foo(integer);

此命令将独立于foo是聚合、函数还是过程而工作。

兼容性

此命令符合 SQL 标准,具有以下PostgreSQL扩展

  • 标准只允许每个命令删除一个例程。

  • IF EXISTS选项是扩展。

  • 指定参数模式和名称的能力是扩展,并且在给出模式时查找规则有所不同。

  • 用户可定义的聚合函数是扩展。

另请参阅

DROP AGGREGATEDROP FUNCTIONDROP PROCEDUREALTER ROUTINE

请注意,没有CREATE ROUTINE命令。

提交更正

如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用此表单报告文档问题。