创建创建Postgresql表的函数

3
我正在尝试在POSTGRESQL函数中创建表,但遇到以下错误。
ERROR: 未选择模式以创建 CONTEXT: SQL语句“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个回答

5
请尝试使用以下方法:
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;

因此将“模式”和“表”分开处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接