2016-08-03 33 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