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
選項是一個擴充套件。
指定引數模式和名稱的能力是一個擴充套件,並且當給出模式時,查詢規則有所不同。
使用者定義的聚合函式是一個擴充套件。
如果您在文件中發現任何不正確、與您實際使用的功能不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。