alter table为其他表创建列

时间:2010-07-05 23:06:21

标签: sql postgresql

任何人都可以帮我创建来自表B的表A的列吗?

假设我有表B:

column name:WORDS
      row 1:ONE
      row 2:TWO
      row 3:THREE

并想要表A:

column name: ONE | TWO | THREE

我需要创建它而不是某些视图

感谢

2 个答案:

答案 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);