изменить таблицу, чтобы создать столбцы для другой таблицы - PullRequest
2 голосов
/ 06 июля 2010

Может ли кто-нибудь помочь мне с созданием столбца для таблицы A из таблицы B?

допустим, у меня есть таблица B:

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

и хотите иметь таблицу A:

column name: ONE | TWO | THREE

Мне нужно, чтобы это было создано, а не какой-то ВИД

спасибо

Ответы [ 2 ]

2 голосов
/ 06 июля 2010

Что-то вроде ...

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;
0 голосов
/ 07 июля 2010

Вы можете использовать синтаксис INHERITS в PostgreSQL:

- создать таблицу B в качестве шаблона

create table tableB(one varchar,two varchar,three varchar);

- создать таблицу A

create table tableA() INHERITS(tableB);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...