postgresql - 创建函数以创建表 Postgresql

标签 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;

最佳答案

试试这个:

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;

所以将“架构”和“表格”分开。

关于postgresql - 创建函数以创建表 Postgresql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40435864/

相关文章:

postgresql - 如何使 Microstrategy 与 Redshift/psql 表中的用户模式一起工作?

database - 不使用 PostgreSQL 写入 PostgreSQL 数据库格式

postgresql - 如何对插入/更新/删除触发器使用相同的触发器函数,避免新旧对象的问题

postgresql - Flask-sqlalchemy 在重新启动数据库服务器后失去连接

python - 将一个键值从字典列表转换为列表

sql - PostgreSQL select distinct with like 条件

sql - Django ORM 与 PostgreSQL 原始 sql

java - Hibernate 从 4 迁移到 5 OneToOne 关系后导致 ConstraintViolationException

ruby - 如何在 Sequel 迁移中创建 hstore 列?

postgresql - PL/pgSQL 从表中动态复制数据