DROP FUNCTION — 移除函式
DROP FUNCTION [ IF EXISTS ]name
[ ( [ [argmode
] [argname
]argtype
[, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ]
DROP FUNCTION
移除現有函式的定義。要執行此命令,使用者必須是函式的擁有者。必須指定函式的引數類型,因為可能存在多個具有相同名稱但引數清單不同的函式。
IF EXISTS
如果函式不存在,則不拋出錯誤。 在這種情況下,會發出通知。
name
現有函式的名稱 (可選擇包含 schema 限定詞)。 如果未指定引數清單,則該名稱在其 schema 中必須是唯一的。
argmode
引數的模式:IN
、OUT
、INOUT
或 VARIADIC
。 如果省略,則預設為 IN
。 請注意,DROP FUNCTION
實際上並不關注 OUT
引數,因為只需輸入引數即可確定函式的身分。 因此,列出 IN
、INOUT
和 VARIADIC
引數就足夠了。
argname
引數的名稱。 請注意,DROP FUNCTION
實際上並不關注引數名稱,因為只需引數資料類型即可確定函式的身分。
argtype
函式引數的資料類型(可選擇包含 schema 限定詞),如果有的話。
CASCADE
自動刪除取決於函式的物件(例如運算符或觸發器),並依序刪除取決於這些物件的所有物件(請參閱Section 5.15)。
RESTRICT
如果任何物件取決於該函式,則拒絕刪除該函式。 這是預設值。
此命令移除平方根函式
DROP FUNCTION sqrt(integer);
在一個命令中刪除多個函式
DROP FUNCTION sqrt(integer), sqrt(bigint);
如果函式名稱在其 schema 中是唯一的,則可以不用引數清單來引用它
DROP FUNCTION update_employee_salaries;
請注意,這與以下不同
DROP FUNCTION update_employee_salaries();
它引用一個零引數的函式,而第一個變體可以引用任何數量的引數的函式,包括零,只要該名稱是唯一的。
此命令符合 SQL 標準,具有以下 PostgreSQL 擴充功能
標準只允許每個命令刪除一個函式。
IF EXISTS
選項
指定引數模式和名稱的能力
如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。