入力パラメーターによって異なる指定された列名を持つテーブルを作成する plpgsql に Postgres ストアド関数を作成したいと考えています。
基本的には次のようなものです:
CREATE OR REPLACE FUNCTION document_insert_new_document(_name text, _table_name text)
RETURNS bigint AS
$BODY$
declare
_documentid bigint;
_user_history_table_name text;
_history_table_name_column text;
begin
_documentid = 0;
_user_history_table_name = 'merge_user_history_' || _table_name;
_history_table_name_column = _table_name || '_id';
CREATE TABLE _user_history_table_name
(
user_history_id bigint NOT NULL,
_history_table_name_column bigint NOT NULL,
...
)
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
これは可能ですか?もしそうなら、どのように?