Redrock Postgres 搜索 英文
版本: 11 / 12 / 13 / 14 / 15 / 16

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 命令。