我正在尝试使用另一列中存在的文本值更新 jsonb 列中的字段值,但出现一些语法错误;没有得到任何解决方案。
我正在尝试在 JSONB 下面交换 OutgoingVertexid 和 IncomingVertexId 的值
'[
{
"Edgeid":10,
"Weight":100,
"Active":1,
"OutgoingVertexid":"",
"IncomingVertexid":"G",
"EdgeColor":"Black"
}
]
'
因此,通过将所有值 OutgoingVertexid 和 IncomingVertexid 值放在临时表中来使用下面的代码。
UPDATE temp_table
SET
owner_property = CASE
WHEN owner_outgoing_edge IS NOT NULL
THEN jsonb_set(owner_property, '{OutgoingVertexid}', '""')
ELSE
jsonb_set(owner_property, '{OutgoingVertexid}', ''||owner_incoming_edge::jsonb||'')
END;
但得到以下错误:
错误:位置 1 的路径元素不是整数:
提前致谢
您的 json 值是一个数组,而不是单个值。因此,您需要通过在传递给的数组中包含索引来选择要更改的数组元素
jsonb_set()