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」的表具有以下資料。

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;

輸出:

您可以看到一個名為「totalrecords」的函式被建立。現在,來執行一個呼叫這個函式並檢查EMPLOYEES表中的記錄,如下所示 -

select totalRecords();

當執行上述查詢時,結果為: