支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11

DROP ROUTINE

DROP ROUTINE — 移除常式

概要

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

描述

DROP ROUTINE 移除一個或多個現有常式的定義。術語「routine」包含聚合函數、一般函數和程序。有關參數的描述、更多範例和更多詳細訊息,請參閱 DROP AGGREGATEDROP FUNCTIONDROP PROCEDURE

注意事項

DROP ROUTINE 使用的查找規則與 DROP PROCEDURE 的規則基本相同;特別是,DROP ROUTINE 共享該指令的行為,即將沒有 argmode 標記的引數列表視為可能使用 SQL 標準的定義,即 OUT 引數包含在列表中。(DROP AGGREGATEDROP FUNCTION 沒有這樣做。)

在某些情況下,當不同種類的常式共享同一個名稱時,當使用更具體的指令(DROP FUNCTION 等)時,DROP ROUTINE 可能會因為含糊不清的錯誤而失敗。更仔細地指定引數類型列表也可以解決此類問題。

這些查找規則也用於作用於現有常式的其他指令,例如 ALTER ROUTINECOMMENT ON ROUTINE

範例

移除類型為 integer 的常式 foo

DROP ROUTINE foo(integer);

無論 foo 是聚合、函數還是程序,此指令都可以使用。

相容性

此指令符合 SQL 標準,並具有以下 PostgreSQL 擴充功能

  • 該標準僅允許每個指令刪除一個常式。

  • IF EXISTS 選項是一個擴充功能。

  • 指定引數模式和名稱的功能是一個擴充功能,並且當給定模式時,查找規則會有所不同。

  • 使用者可定義的聚合函數是一個擴充功能。

參見

DROP AGGREGATEDROP FUNCTIONDROP PROCEDUREALTER ROUTINE

請注意,沒有 CREATE ROUTINE 指令。

提交更正

如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步說明的內容,請使用此表單來報告文件問題。