PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgres:Ändern Sie jedes Array-Element

Sie müssen entschachteln, teilen und dann wieder aggregieren.

update the_table
  set the_array = array(select t.val / 10 
                        from unnest(the_table.the_array) as t(val));

Wenn Sie die ursprüngliche Reihenfolge im Array beibehalten müssen, verwenden Sie 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);

Um dies in Liquibase auszuführen, müssen Sie einen <sql> verwenden ändern

Online-Beispiel:https://rextester.com/IJGA96691