2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

DROP FUNCTION

DROP FUNCTION — 刪除一個函式

概要

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

描述

DROP FUNCTION 刪除現有函式的定義。要執行此命令,使用者必須是該函式的所有者。必須指定函式的引數型別,因為具有相同名稱但引數列表不同的多個函式可能存在。

引數

IF EXISTS

如果函式不存在,則不引發錯誤。在這種情況下會發出通知。

name

現有函式的名稱(可選擇模式限定)。如果未指定引數列表,則該名稱在其模式中必須是唯一的。

argmode

引數的模式:INOUTINOUTVARIADIC。如果省略,則預設為 IN。請注意,DROP FUNCTION 實際上並不關注 OUT 引數,因為僅輸入引數就足以確定函式的身份。因此,列出 ININOUTVARIADIC 引數就足夠了。

argname

引數的名稱。請注意,DROP FUNCTION 實際上並不關注引數名稱,因為僅引數資料型別就足以確定函式的身份。

argtype

函式的引數的資料型別(可選擇模式限定),如果有的話。

CASCADE

自動刪除依賴於該函式(例如,運算子或觸發器)的物件,以及依次依賴於這些物件的所有物件(參見 第 5.15 節)。

RESTRICT

如果任何物件依賴於該函式,則拒絕刪除該函式。這是預設設定。

示例

此命令刪除平方根函式

DROP FUNCTION sqrt(integer);

在一條命令中刪除多個函式

DROP FUNCTION sqrt(integer), sqrt(bigint);

如果函式名稱在其模式中是唯一的,則可以不帶引數列表引用它

DROP FUNCTION update_employee_salaries;

請注意,這與

DROP FUNCTION update_employee_salaries();

不同,後者引用一個零引數函式,而第一種變體可以引用任何數量的引數(包括零)的函式,只要名稱是唯一的。

相容性

此命令符合 SQL 標準,並帶有以下 PostgreSQL 擴充套件

  • 標準僅允許每條命令刪除一個函式。

  • IF EXISTS 選項

  • 指定引數模式和名稱的能力

提交更正

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