PostgreSQL自定義函數(shù)的使用
基本語法
//建一個名字為function_name的自定義函數(shù) create or replace function function_name() returns data_type as //returns 返回一個data_type數(shù)據(jù)類型的結(jié)果;data_type 是返回的字段的類型; $$ //固定寫法 ......//方法體 $$ LANGUAGE SQL; //固定寫法 ------------------------------- CREATE OR REPLACE FUNCTION function_name(args) RETURNS return_type AS $$ DECLARE -- 變量聲明 BEGIN -- 函數(shù)體 RETURN result; END; $$ LANGUAGE plpgsql;
創(chuàng)建函數(shù)
create or replace function add(integer,integer) returns integer as $$ select $1 + $2; $$ LANGUAGE SQL;
運行結(jié)果
調(diào)用結(jié)果
函數(shù)嵌套
CREATE FUNCTION outer_function() RETURNS void AS $$ DECLARE FUNCTION inner_function() RETURNS void AS $$ -- 內(nèi)部函數(shù)代碼 $$ LANGUAGE plpgsql; BEGIN -- 外部函數(shù)代碼 inner_function(); END; $$ LANGUAGE plpgsql;
遞歸函數(shù)
CREATE FUNCTION recursive_function(arg) RETURNS type AS $$ BEGIN IF condition THEN RETURN arg; ELSE RETURN recursive_function(arg + 1); END IF; END; $$ LANGUAGE plpgsql;
刪除函數(shù)
- 使用
DROP FUNCTION
語句來刪除一個或多個函數(shù)
DROP FUNCTION function_name(args);
- 如果函數(shù)不存在,使用
IF EXISTS
選項不報錯
DROP FUNCTION IF EXISTS function_name(args);
- 級聯(lián)刪除
如果其他對象(如視圖或觸發(fā)器)依賴于該函數(shù),可以使用 CASCADE 選項來級聯(lián)刪除這些依賴對象
DROP FUNCTION function_name(args) CASCADE;
到此這篇關(guān)于PostgreSQL自定義函數(shù)的使用的文章就介紹到這了,更多相關(guān)PostgreSQL自定義函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CVE-2019-9193之PostgreSQL?任意命令執(zhí)行漏洞的問題
這篇文章主要介紹了CVE-2019-9193:PostgreSQL?任意命令執(zhí)行漏洞,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08Postgresql數(shù)據(jù)庫之創(chuàng)建和修改序列的操作
這篇文章主要介紹了Postgresql數(shù)據(jù)庫之創(chuàng)建和修改序列的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02在PostgreSQL中使用ltree處理層次結(jié)構(gòu)數(shù)據(jù)的方法
這篇文章主要介紹了在PostgreSQL中使用ltree處理層次結(jié)構(gòu)數(shù)據(jù),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03postgresql 實現(xiàn)啟動、狀態(tài)查看、關(guān)閉
這篇文章主要介紹了postgresql 實現(xiàn)啟動、狀態(tài)查看、關(guān)閉的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01postgresql數(shù)據(jù)合并,多條數(shù)據(jù)合并成1條的操作
這篇文章主要介紹了postgresql數(shù)據(jù)合并,多條數(shù)據(jù)合并成1條的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02如何解決PostgreSQL執(zhí)行語句長時間卡著不動不報錯也不執(zhí)行的問題
某日開發(fā)同事上報一sql性能問題,一條查詢好似一直跑不出結(jié)果,查詢了n小時,還未返回結(jié)果,這篇文章主要給大家介紹了關(guān)于如何解決PostgreSQL執(zhí)行語句長時間卡著不動不報錯也不執(zhí)行問題的相關(guān)資料,需要的朋友可以參考下2024-02-02PostgreSQL中pageinspect 的擴展使用小結(jié)
pageinspect是PostgreSQL的底層擴展,允許數(shù)據(jù)庫管理員和開發(fā)者直接檢查數(shù)據(jù)庫頁面的內(nèi)部結(jié)構(gòu),需超級用戶權(quán)限,適用于9.6+版本,感興趣的可以了解一下2025-06-06