PostgreSQL函數(存儲過程)

PostgreSQL函數也稱爲PostgreSQL存儲過程。 PostgreSQL函數或存儲過程是存儲在數據庫服務器上並可以使用SQL界面調用的一組SQL和過程語句(聲明,分配,循環,控制流程等)。 它有助於您執行通常在數據庫中的單個函數中進行多次查詢和往返操作的操作。

您可以在許多語言(如SQL,PL/pgSQL,C,Python等)中創建PostgreSQL函數。

語法:

CREATE [OR REPLACE] FUNCTION function_name (arguments)   
RETURNS return_datatype AS $variable_name$  
  DECLARE  
    declaration;  
    [...]  
  BEGIN  
    < function_body >  
    [...]  
    RETURN { variable_name | value }  
  END; LANGUAGE plpgsql;

參數說明

  • function_name:指定函數的名稱。
  • [OR REPLACE]:是可選的,它允許您修改/替換現有函數。
  • RETURN:它指定要從函數返回的數據類型。它可以是基礎,複合或域類型,或者也可以引用表列的類型。
  • function_bodyfunction_body包含可執行部分。
  • plpgsql:它指定實現該函數的語言的名稱。

例子:

下面我們來舉個例子來演示PostgreSQL函數使用,我們有一個名爲「EMPLOYEES」的表具有以下數據。
PostgreSQL函數(存儲過程)

EMPLOYEES表上創建一個名爲total records()的函數。
函數的定義如下:

CREATE OR REPLACE FUNCTION totalRecords ()  
RETURNS integer AS $total$  
declare  
    total integer;  
BEGIN  
   SELECT count(*) into total FROM EMPLOYEES;  
   RETURN total;  
END;  
$total$ LANGUAGE plpgsql;

輸出:
PostgreSQL函數(存儲過程)

您可以看到一個名爲「totalrecords」的函數被創建。現在,來執行一個調用這個函數並檢查EMPLOYEES表中的記錄,如下所示 -

select totalRecords();

當執行上述查詢時,結果爲:
PostgreSQL函數(存儲過程)