2016-08-03 9 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'や' to_json'のようなものですが、上記の例の正しい構文を理解することができませんでした。 –

+1

'あなたの選択部分として' 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 
関連する問題