Oi, Maria! Tudo certo por aí?
Desde já, peço desculpas pela demora em te responder.
Para atualizar chaves de um objeto JSON, você pode utilizar a seguinte sintaxe:
UPDATE tabela
SET coluna = REPLACE(coluna::tipo_de_dado, 'chave_antiga', 'chave_nova')::jsonb;
No código acima, utilizamos a cláusula UPDATE
para atualizar determinada tabela e a partir de SET
, indicamos qual coluna sofrerá as alterações. O processo de modificação ocorreu a partir da função REPLACE()
, a qual tem como objetivo substituir um dado por outro (neste caso, a substituição será feita de uma chave por outra).
Dentro do REPLACE()
, passamos como parâmetro coluna::tipo_de_dado
, que identifica a coluna onde ocorrerá a modificação e qual será o formato do seu dado. Ademais, é necessário escrever o nome da chave antiga e da chave nova.
Por fim, usamos a expressão ::jsonb
, que é usada para converter o resultado da substituição de volta para o tipo jsonb
.
Ao levar essa sintaxe para o seu cenário, chegamos nos seguintes scripts SQL:
UPDATE historico
SET dados = REPLACE(dados::text, 'dataVelha', 'dataAntiga')::jsonb;
UPDATE historico
SET dados = REPLACE(dados::text, 'dataNew', 'dataNovo')::jsonb;
Os dois UPDATEs
acima foram só exemplos. Utilize-os e faça as devidas alterações para alterar o que for necessário em sua tabela!
Maria, espero ter ajudado! Contudo, vale ressaltar que como é um assunto externo aos cursos de PostgreSQL da Alura e que não tenho acesso ao cenário completo do projeto, outros testes terão de ser feitos a fim de obter o resultado esperado, mas espero que esta resposta seja um bom ponto de partida para a resolução do seu problema!
Um grande abraço.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!