在postgresql中动态创建表

时间:2017-12-16 00:42:23

标签: postgresql

我正在开发一个Web应用程序,我需要为应用程序必须引用的每个元数据创建动态表。

长话短说,这是我的想法:表的名称总是'marker_(元数据的名称)',我改变创建的表以使用我存储在另一个表中的数据添加用户需要的每一列,我正在使用光标的那个。

到目前为止,我已经得到了这个:

execute format ('
create table marker_%% (
    id_marker serial primary key
)', new.meta_name);

loop
    fetch cur_atri into name, type, size;
    exit when not found;
    execute format ('alter table marker_%% add column %% %%', new.meta_name, name, size);
end loop;

这是元数据表更新后触发器功能的一部分。

我搜索了Postgres文档并且我看到了命令'execute format',并试图使用它,但我收到了这个错误:

  

错误:语法错误处于或接近“%”第1行:创建表marcacao_%(^ QUERY:创建表marcacao_%(id_marcarcao序列主键)语境:PL / pgSQL函数criar_tabela_colecao()执行第12行

我需要这个EXECUTE FORMAT命令的帮助

0 个答案:

没有答案