PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Postgres:modifique cada elemento do array


Você precisa desaninhar, dividir e agregar de volta.
update the_table
  set the_array = array(select t.val / 10 
                        from unnest(the_table.the_array) as t(val));

Se você precisar preservar a ordem original na matriz, use with ordinality
update the_table
  set the_array = array(select t.val / 10 
                        from unnest(the_table.the_array) with ordinality as t(val,idx) 
                        order by t.idx);

Para executar isso no Liquibase, você precisa usar um <sql> mudança

Exemplo on-line:https://rextester.com/IJGA96691