任何人都可以帮我创建来自表B的表A的列吗?
假设我有表B:
column name:WORDS
row 1:ONE
row 2:TWO
row 3:THREE
并想要表A:
column name: ONE | TWO | THREE
我需要创建它而不是某些视图
感谢
答案 0 :(得分:2)
像...一样的东西。
create function create_my_table () as
$$
declare
v_t text[];
begin
select array_agg(distinct quote_ident(words) ||' text' ) into v_t from table_B;
EXECUTE 'CREATE TABLE tableA (' || array_to_string(v_t,',') ||' );';
end;
$$ language plpgsql;
select create_my_table;
答案 1 :(得分:0)
您可以使用PostgreSQL的INHERITS语法:
- 将tableB创建为模板
create table tableB(one varchar,two varchar,three varchar);
- 创建tableA
create table tableA() INHERITS(tableB);