PostgreSQL自定義函數(shù)的使用
基本語法
//建一個(gè)名字為function_name的自定義函數(shù) create or replace function function_name() returns data_type as //returns 返回一個(gè)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;
運(yùn)行結(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語句來刪除一個(gè)或多個(gè)函數(shù)
DROP FUNCTION function_name(args);
- 如果函數(shù)不存在,使用
IF EXISTS選項(xiàng)不報(bào)錯(cuò)
DROP FUNCTION IF EXISTS function_name(args);
- 級(jí)聯(lián)刪除
如果其他對象(如視圖或觸發(fā)器)依賴于該函數(shù),可以使用 CASCADE 選項(xiàng)來級(jí)聯(lián)刪除這些依賴對象
DROP FUNCTION function_name(args) CASCADE;
到此這篇關(guān)于PostgreSQL自定義函數(shù)的使用的文章就介紹到這了,更多相關(guān)PostgreSQL自定義函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL的upsert實(shí)例操作(insert on conflict do)
這篇文章主要介紹了PostgreSQL的upsert實(shí)例操作(insert on conflict do),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
關(guān)于postgresql?timestamp時(shí)間戳問題
這篇文章主要介紹了關(guān)于postgresql?timestamp時(shí)間戳問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Postgresql之時(shí)間戳long,TimeStamp,Date,String互轉(zhuǎn)方式
這篇文章主要介紹了Postgresql中的時(shí)間戳long,TimeStamp,Date,String互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
PostgreSQL 模式(SCHEMA)操作指南數(shù)據(jù)庫對象的命名空間管理
文章詳細(xì)介紹了PostgreSQL中模式(Schema)的概念、應(yīng)用場景、操作指南、搜索路徑機(jī)制以及最佳實(shí)踐,模式是數(shù)據(jù)庫對象的命名空間,提供邏輯隔離、權(quán)限控制和組織管理,文章還解答了常見問題,并總結(jié)了模式在數(shù)據(jù)庫管理中的重要性,感興趣的朋友跟隨小編一起看看吧2026-01-01
Postgresql在mybatis中報(bào)錯(cuò):操作符不存在:character varying == unknown的問題
這篇文章主要介紹了Postgresql在mybatis中報(bào)錯(cuò): 操作符不存在 character varying == unknown的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01

