sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres:ändra varje array-element

Du måste odla, dela och sedan samla tillbaka.

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

Om du behöver bevara den ursprungliga ordningen i arrayen använd 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);

För att köra detta i Liquibase måste du använda en <sql> ändra

Onlineexempel:https://rextester.com/IJGA96691




  1. ALTER &DROP Table DDL med Execute Immediate i Oracle Database

  2. SMALLDATETIMEFROMPARTS() Exempel i SQL Server (T-SQL)

  3. Ny MariaDB AX-version med MariaDB ColumnStore 1.1.3 GA

  4. PHP white screen of death varje gång. Vad gör jag fel?