在沒有參數知識的情況下刪除函數
使用「CREATE OR REPLACE FUNCTION」語法在文字檔案中維護函數集合時,可以新增或刪除參數時手動追蹤和刪除重載變得乏味。之所以會出現這種困境,是因為在刪除函數時需要以確切的順序指定每個參數類型。
要簡化此流程,請考慮利用下列查詢自動產生DROP FUNCTION 指令:
SELECT 'DROP FUNCTION ' || oid::regprocedure FROM pg_proc WHERE proname = 'my_function_name' AND pg_function_is_visible(oid);
說明:
pg_function_is_visible(oid) 條件確保僅考慮目前搜尋路徑中可見的函數。
DROP FUNCTION my_function_name(string text, form text, maxlen integer); DROP FUNCTION my_function_name(string text, form text); DROP FUNCTION my_function_name(string text);
產生的DROP FUNCTION 指令可以順序執行以刪除具有指定名稱的所有函數,無論參數數量或類型為何。
以上是如何自動刪除 PostgreSQL 函數的所有重載?的詳細內容。更多資訊請關注PHP中文網其他相關文章!