Estou tentando atualizar um valor de campo na coluna jsonb com valor de texto presente em outra coluna, mas recebendo alguns erros de sintaxe; não obtendo nenhuma solução.
estou tentando trocar valores de OutgoingVertexid & IncomingVertexId abaixo do JSONB
'[
{
"Edgeid":10,
"Weight":100,
"Active":1,
"OutgoingVertexid":"",
"IncomingVertexid":"G",
"EdgeColor":"Black"
}
]
'
então usado abaixo do código, colocando todos os valores OutgoingVertexid e IncomingVertexid na tabela temporária.
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;
mas ficando abaixo do erro:
ERRO: o elemento de caminho na posição 1 não é um inteiro:
Desde já, obrigado
Seu valor json é uma matriz, não um valor único. Então você precisa escolher o elemento da matriz que deseja alterar, incluindo o índice na matriz que você passa
jsonb_set()