sql >> Databáze >  >> RDS >> PostgreSQL

Postgres:upravte každý prvek pole

Musíte rozložit, rozdělit a poté agregovat zpět.

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

Pokud potřebujete zachovat původní pořadí v poli, použijte 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);

Chcete-li to spustit v Liquibase, musíte použít <sql> změnit

Online příklad:https://rextester.com/IJGA96691




  1. Jak chránit aplikaci JDBC proti vkládání SQL

  2. Jak používat postgresql any s daty jsonb

  3. Uložte změny do databáze vaadin

  4. Překvapení a předpoklady výkonu:STRING_SPLIT()