[pgsql-jp: 40747] Re: 変数をテーブルを作成する際に利用したい

Itagaki Takahiro itagaki.takahiro @ gmail.com
2011年 4月 24日 (日) 23:31:04 JST


2011/4/24 yukihito miso <oira3ryu @ gmail.com>:
> この変数var_colをCREATE TABLEで利用する方法が思いつきません。
>
> イメージとしては
> CREATE TEMP TABLE tmp_table1 (id integer, name CHAR VARYING(255), " +
> var_col + ", PRIMARY KEY (id)) ON COMMIT DROP;
> のようにできないかということなのですが...

PL/pgSQL の EXECUTE を使ってください。

CREATE FUNCTION create_tmp_table(var_col text) RETURNS VOID AS $$
BEGIN
  EXECUTE 'CREATE TEMP TABLE tmp_table1 (id integer, name CHAR VARYING(255), '
       || var_col
       || ', PRIMARY KEY (id)) ON COMMIT DROP';
END;
$$ LANGUAGE plpgsql;

-- 
Itagaki Takahiro


pgsql-jp メーリングリストの案内