[英]Update typical json in postgresql
我有一個表,其中一列包含 json 格式,我正在嘗試更新該列但沒有運氣。請查看給定的查詢,任何幫助都會很明顯。
詢問
update data_file
set json_data = jsonb_set(json_data::jsonb, '{"tables","li_daily_sales_ll"}'::text[],
json_extract_path(json_data ->'tables', 'li_daily_sales_ll' )::jsonb, '{ada}', jsonb_build_object( '{adapartialcurrentperiod}','202001') ,true)
where data_file_id = 475;
輸入 json
{
"tables": {
"li_daily_sales_ll": {
"sourcedetails": {
"sourceT": "Hive",
"sourceconnection": "xxxxxxx.xxxxxxxxxx",
"duplicateCheck": null,
"targetN": null,
"partitionName": null
},
"ada": {
"adatype": "Partial",
"adatargettablename": "xxxxxxx.xxxxxxxxxx",
"adaprimarykeycols": null,
"adafilter": null,
"adahistorypartitioncols": "xxxxxxx",
"adapartialcurrentperiod": 202003
}
}
}
}
Output Json
{
"tables": {
"li_daily_sales_ll": {
"sourcedetails": {
"sourceT": "Hive",
"sourceconnection": "xxxxxxx.xxxxxxxxxx",
"duplicateCheck": null,
"targetN": null,
"partitionName": null
},
"ada": {
"adatype": "Partial",
"adatargettablename": "xxxxxxx.xxxxxxxxxx",
"adaprimarykeycols": null,
"adafilter": null,
"adahistorypartitioncols": "xxxxxxx",
"adapartialcurrentperiod": 202001
}
}
}
}
似乎很簡單:
update data_file
set json_data = jsonb_set(json_data::jsonb,
'{tables,li_daily_sales_ll,ada,adapartialcurrentperiod}'::text[],
'202001')
where data_file_id = 475;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.