標籤:postgresql function 預存程序
什麼是預存程序, 百度百科是這麼定義的:儲存過程(Stored Procedure)是在大型資料庫系統中,一組為了完成特定功能的SQL 陳述式集,儲存在資料庫中經過第一次編譯後再次調用不需要再次編譯,使用者通過指定預存程序的名字並給出參數(如果該預存程序帶有參數)來執行它。預存程序是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程式都應該用到預存程序。
Postgresql的預存程序文法結構如下:
<pre name="code" class="sql" style="color: rgb(51, 51, 51); line-height: 24px;"><span style="font-family: arial, 宋體, sans-serif;">CREATE OR REPLACE FUNCTION 函數名(參數1,[整型 int4, 整型數組 _int4, …])</span>
RETURNS 傳回值類型 AS$BODY$DECLARE變數聲明BEGIN函數體END;$BODY$LANGUAGE ‘plpgsql’ VOLATILE;
下面的例子是要調用一個預存程序自動建立對應的一系列表:
CREATE OR REPLACE FUNCTION create_table_for_client(id int) RETURNS integer AS$BODY$DECLARE num int4 := 0; sql "varchar";BEGIN sql := 'create table _' || id || '_company(id int, name text)'; EXECUTE sql;
<pre name="code" class="sql" style="color: rgb(51, 51, 51); line-height: 24px;"> sql := 'create table _' || id || '_employee(id int, name text)'; EXECUTE sql;
<pre name="code" class="sql" style="color: rgb(51, 51, 51); line-height: 24px;"> sql := 'create table _' || id || '_sale_bill(id int, name text)'; EXECUTE sql;
....... return num;END;$BODY$ LANGUAGE plpgsql VOLATILE
PostgreSQL的預存程序初探