2016-05-05 19 views
0

私はいくつかのPostgresのこのようなデータが含まれている9.4のテーブル持っている:私はこのPostgresの更新JSONフィールド

 
| id | data               | 
|----|--------------------------------------------------------------| 
| 1 | {"user": "joe", "updated-time": {123, "unit":"millis"}}  | 
| 2 | {"message": "hi", "updated-time": {321, "unit":"millis"}} | 

のようなものにJSON列を変換する必要が

 
| id | data          | 
|----|-------------------------------------------| 
| 1 | {"user": "joe", "updated-time": 123}  | 
| 2 | {"message": "hi", "updated-time": 321} | 

を理想的には次のようになります複数のテーブルへの変換を簡単に適用できます。 JSONキーdata->'updated-time'を含むテーブルは更新する必要があり、スキップしないテーブルは更新する必要があります。ありがとう!

+0

お試しいただいた質問はありますか?あなたはどこに正確にこだわっていますか? JSON操作に使用する適切な演算子/関数を使用しますか?条件に基づいて行の選択を更新するための基本的なSQL? – IMSoP

+2

指定された期待されたjsonが有効でない場合、 '{" value ":123、" unit ":" millis "}'または '[123、{" unit ":" millis "}]'を使用できます。 – pozs

+2

[新しいPostgreSQL JSONデータ型内のフィールドを変更する方法は?](http://stackoverflow.com/questions/18209625/how-do-i-modify-fields-inside-the-new-postgresql-json -datatype) – pozs

答えて

0

||演算子を使用すると、2つのjsonbオブジェクトをマージできます。

select '{"foo":"bar"}'::jsonb || '{"baz":"bar"}'::jsonb; 
= {"baz": "bar", "foo": "bar"} 
関連する問題