2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 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 AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINE

請注意,沒有 CREATE ROUTINE 命令。

提交更正

如果您在文件中發現任何不正確、與您實際使用的功能不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。