PL/pgSQL之入門


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;

  

執行

將以上語句復制在Navicat或者PgAdmin等數據庫客戶端執行,即可創建helloworld函數。

以上看到執行helloworld函數后輸出信息以及結果,結果為plpgsql。

以上為本篇的入門介紹,歡迎各位批評指正。

 

關於作者

大家有需要介紹哪些部分,或者一些想法歡迎聯系我。

GISer
QQ: 1016817543
郵箱:1016817543@qq.com
github:https://github.com/MrSmallLiu (歡迎star)

劉航,國信司南(北京)地理信息技術有限公司,技術經理。負責過多個基於 PostgreSQL 數據庫以及 PostGIS 的大中型項目。公司矢量切片產品(基於 PostgreSQL 數據庫)研發核心人員。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM