PostgreSQL DROP FUNCTION

2021-09-10 14:30 更新

DROP FUNCTION — 移除一個函數(shù)

大綱

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

描述

DROP FUNCTION移除一個已有函數(shù) 的定義。要執(zhí)行這個命令用戶必須是該函數(shù)的擁有者。該函數(shù)的參數(shù) 類型必須被指定,因為多個不同的函數(shù)可能會具有相同的函數(shù)名和不 同的參數(shù)列表。

參數(shù)

IF EXISTS

如果該函數(shù)不存在則不要拋出一個錯誤,而是發(fā)出一個提示。

name

一個現(xiàn)有函數(shù)的名稱(可以是模式限定的)。 如果未指定參數(shù)列表,則該名稱在其模式中必須是唯一的。

argmode

一個參數(shù)的模式:IN、OUT、 INOUT或者VARIADIC。如果被忽略, 則默認(rèn)為IN。注意 DROP FUNCTION并不真正關(guān)心 OUT參數(shù),因為決定函數(shù)的身份時只需要輸入?yún)?shù)。 因此列出IN、INOUTVARIADIC參數(shù)足以。

argname

一個參數(shù)的名稱。注意 DROP FUNCTION并不真正關(guān)心 參數(shù)名稱,因為決定函數(shù)的身份時只需要參數(shù)的數(shù)據(jù)類型。

argtype

如果函數(shù)有參數(shù),這是函數(shù)參數(shù)的數(shù)據(jù)類型(可以是模式限定的)。

CASCADE

自動刪除依賴于該函數(shù)的對象(例如操作符和觸發(fā)器),然后刪除所有 依賴于那些對象的對象(見第 5.14 節(jié))。

RESTRICT

如果有任何對象依賴于該函數(shù),則拒絕刪除它。這是默認(rèn)值。

示例

這個命令移除平方根函數(shù):

DROP FUNCTION sqrt(integer);

在一個命令中刪除多個函數(shù):

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

如果函數(shù)名稱在其模式中是唯一的,則可以在不帶參數(shù)列表的情況下引用它:

DROP FUNCTION update_employee_salaries;

請注意,這與

DROP FUNCTION update_employee_salaries();

不同,后者引用一個零個參數(shù)的函數(shù),而第一個變體才可以引用具有任意數(shù)量參數(shù)的函數(shù), 包括零,只要該名稱是唯一的。

兼容性

該命令符合SQL標(biāo)準(zhǔn),使用這些PostgreSQL擴(kuò)展:

  • 該標(biāo)準(zhǔn)只允許每個命令刪除一個函數(shù)。

  • IF EXISTS選項

  • 能夠指定參數(shù)模式和名稱


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號