2016-08-03 5 views
2

Есть ли простой способ поместить всю строку из одной таблицы Postgres в столбец JSON в другой таблице?Выберите строку как JSON в Postgres

Вот пример, иллюстрирующий то, что я ищу. Скажем, у меня есть таблица people, с именем, возрастом и столбцов данных:

column type 
----------- 
name text 
age int 
data json 

Я хотел бы объединить в моей таблице 2012_customers, которая имеет гораздо больше столбцов. Как я буду класть все эти дополнительные столбцы в столбец JSON people, сохраняя имена столбцов в качестве ключей данных? Вот некоторые псевдо-SQL для этого:

insert into people 
select 
name, 
age, 
all_fields_as_json() as json 
from customers_2012 
+1

'Значит ли не row_to_json' делать то, что вам нужно? – alzee

+0

Это или 'to_json', вероятно, делает то, что я хочу, но я не смог определить правильный синтаксис для приведенного выше примера. –

+1

попробуйте 'select name, age, row_to_json (customers_2012) from customers_2012' в качестве выбранной вами части. – alzee

ответ

4

В этой ситуации правильный синтаксис для использования row_to_json(table_name):

insert into people 
select 
name, 
age, 
row_to_json(customers_2012) as json 
from customers_2012