2017-11-06 4 views
0

私は、この更新プログラムを持って、私はPostgreSQLのドキュメントが、データを挿入する方法についての明確な何も、いくつかのチュートリアルオプション読んだ:挿入jsonbデータ、オプションの配列やオブジェクト、有効な方法

1.with '{}' 
2.with {} 
3.with '[]' <-- array of objects 

と大半を」使用 'をいけない::のようなjsonb' の上に表示されています。私のコードここ

https://www.postgresql.org/docs/9.4/static/datatype-json.html

UPDATE customer set phones ='{ {"type": "mobile", "phone": "001001"} , 
{"type": "fix", "phone": "002002"} }'::jsonb 
    where id ='4ca27243-6a55-4855-b0e6-d6e1d957f289'; 

は、私はこのエラーを取得する:

ERROR: invalid input syntax for type json 
LINE 1: UPDATE customer set phones ='{ {"type": "mobile", "phone": ... 
            ^
DETAIL: Expected string or "}", but found "{". 
CONTEXT: JSON data, line 1: { {... 
SQL state: 22P02 
Character: 29 

私はちょうどのようなビッグネームのオブジェクトで囲む必要があり、携帯電話の点灯を記録必要ですか?私はjavascriptのために、オブジェクトの配列ではないオブジェクトが、postresqlのjsonbで受け入れられるかどうかわかりません。

{phones:{"" type ":" mobile "、" phone ":" 001001 "} 、 {"type": "fix"、 "phone": "002002"}}}

答えて

0

'{}'はpostgresの配列タイプです。あなたがjsonbを使用する場合、配列のための定期的な'[]'を使用します。

so=# select jsonb_pretty('{"phones":[ {"type": "mobile", "phone": "001001"} , {"type": "fix", "phone": "002002"} ] }'); 
jsonb_pretty 
{ 
    "phones": [ 
     { 
      "type": "mobile", 
      "phone": "001001" 
     }, 
     { 
      "type": "fix", 
      "phone": "002002" 
     } 
    ] 
} 
(1 row) 
Time: 0.486 ms 

か:

so=# select jsonb_pretty('[ {"type": "mobile", "phone": "001001"} , {"type": "fix", "phone": "002002"} ]'); 
jsonb_pretty 
[ 
    { 
     "type": "mobile", 
     "phone": "001001" 
    }, 
    { 
     "type": "fix", 
     "phone": "002002" 
    } 
] 
(1 row) 
関連する問題