登录
DROP ROUTINE
DROP ROUTINE — 删除例程
概要
DROP ROUTINE [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
[ CASCADE | RESTRICT ]
描述
DROP ROUTINE
删除一个或多个现有例程的定义。术语“例程”包括聚合函数、普通函数和过程。请参阅DROP AGGREGATE、DROP FUNCTION和DROP PROCEDURE下的内容,了解参数、更多示例和进一步的详细信息。
注释
DROP ROUTINE
使用的查找规则与DROP PROCEDURE
的查找规则基本相同;特别是,DROP ROUTINE
共享该命令的行为,即认为没有*argmode
*标记的参数列表可能使用 SQL 标准的定义,即OUT
参数包含在列表中。(DROP AGGREGATE
和DROP FUNCTION
不这样做。)
在某些情况下,当相同名称由不同类型的例程共享时,DROP ROUTINE
可能因歧义错误而失败,而更具体的命令(DROP FUNCTION
等)则可以正常工作。更仔细地指定参数类型列表也将解决此类问题。
这些查找规则也由其他对现有例程起作用的命令使用,例如ALTER ROUTINE
和COMMENT ON ROUTINE
。
示例
要删除类型为integer
的例程foo
DROP ROUTINE foo(integer);
无论foo
是聚合、函数还是过程,此命令都将独立运行。
兼容性
此命令符合 SQL 标准,并带有以下PostgreSQL扩展
该标准仅允许每条命令删除一个例程。
IF EXISTS
选项是扩展。指定参数模式和名称的能力是扩展,并且在给出模式时查找规则不同。
用户可定义聚合函数是扩展。
另请参见
DROP AGGREGATE、DROP FUNCTION、DROP PROCEDURE、ALTER ROUTINE请注意,没有CREATE ROUTINE
命令。