2016-08-03 39 views
2

有没有一种简单的方法可以将一个Postgres表中的整行放入另一个表中的JSON列中?在Postgres中选择一行为JSON

下面是一个例子来说明我期待做的事情。比方说,我有一个表people,有姓名,年龄,和数据列:

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

我想在我的2012_customers表,里面有很多更多的列合并。我如何将所有这些额外的列填充到people的JSON列中,将列名称保留为数据键?下面是一些伪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

尝试'从customers_2012'选择姓名,年龄,row_to_json(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