PL/pgSQL介紹
plpgsql入門,介紹使用它有哪些優點以及一個HelloWorld。
PL/pgSQL是一種用於PostgreSQL數據庫系統的可載入的過程語言。
- 可以被用來創建函數和觸發器過程
- 對SQL語言增加控制結構
- 可以執行復雜計算
- 繼承所有用戶定義類型、函數和操作符
- 可以被定義爲受服務器信任
- 便於使用
優點
- 客戶端和服務器之間的額外往返通信被消除
- 客戶端不需要的中間結果不必被整理或者在服務器和客戶端之間傳送
- 多輪的查詢解析可以被避免
與不使用存儲函數的應用相比,這能夠導致可觀的性能提升。
PL/pgSQL 的 HelloWorld
函數的結構:
CREATE FUNCTION somefunc(integer, text) RETURNS integer
AS 'function body text'
LANGUAGE plpgsql;
在開發過程中不關心函數是否存在,可以使用 CREATE OR REPLACE Function來創建函數。
PL/pgSQL是一種塊結構的語言。一個塊被定義爲:
[ <<label>> ]
[ DECLARE
declarations
BEGIN
statements
END [ label ];
真正的HelloWorld
CREATE FUNCTION helloworld() RETURNS varchar AS $$
<< outerblock >>
DECLARE
name varchar := 'unknown';
BEGIN
RAISE NOTICE 'My Name is %', name ; -- Prints (My Name is unknown)
name := 'plpgsql';
--
-- 創建一個子塊
--
DECLARE
name varchar := 'interblock';
BEGIN
RAISE NOTICE 'My Name is %', name; -- Prints (My Name is interblock)
RAISE NOTICE 'My Name is %', outerblock.name; -- Prints (My Name is unknown)
END;
RAISE NOTICE 'My Name is %', name; -- Prints (My Name is plpgsql)
RETURN name;
END;
$$ LANGUAGE plpgsql;
————————————————
版權聲明:本文爲CSDN博主「小劉先森」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_35241223/article/details/103537744
執行
將以上語句複製在Navicat或者PgAdmin等數據庫客戶端執行,即可創建helloworld函數。
以上看到執行helloworld函數後輸出信息以及結果,結果爲plpgsql。
以上爲本篇的入門介紹,歡迎各位批評指正。
關於作者
大家有需要介紹哪些部分,或者一些想法歡迎聯繫我。
GISer
QQ: 1016817543br/>郵箱:[email protected]
github:https://github.com/MrSmallLiu (歡迎star)
劉航,國信司南(北京)地理信息技術有限公司,技術經理。負責過多個基於 PostgreSQL 數據庫以及 PostGIS 的大中型項目。公司矢量切片產品(基於 PostgreSQL 數據庫)研發核心人員。