2016-11-05 21 views
1

POSTGRESQL関数内でテーブルを作成しようとしていますが、エラーが発生しています。テーブルを作成する関数を作成するPostgresql

ERROR: no schema has been selected to create in CONTEXT: SQL statement " CREATE TABLE IF NOT EXISTS test.t_testing ( id serial PRIMARY KEY, customerid int, daterecorded date, value double precision )"

私の機能は次のとおりです。

CREATE OR REPLACE FUNCTION test.create_table_type1(t_name varchar(30)) 
    RETURNS VOID AS 
$func$ 
BEGIN 

EXECUTE format(' 
    CREATE TABLE IF NOT EXISTS %I (
    id serial PRIMARY KEY, 
    customerid int, 
    daterecorded date, 
    value double precision 
    )', 'test.t_' || t_name); 

END 
$func$ LANGUAGE plpgsql; 

答えて

1

代わりにこれを試してみてください:

CREATE OR REPLACE FUNCTION test.create_table_type1(t_name varchar(30)) 
    RETURNS VOID AS 
$func$ 
BEGIN 

EXECUTE format(
    'CREATE TABLE IF NOT EXISTS %I.%I (
     id serial  PRIMARY KEY, 
     customerid  int, 
     daterecorded date, 
     value   double precision 
    )', 
    'test', 
    ('t_' || t_name) 
); 

END 
$func$ LANGUAGE plpgsql; 

のでsepparate 'スキーマ' と 'テーブル'。

+0

ありがとうクリスト。それは私の問題を解決する。 – karan

関連する問題