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

Jak aktualizovat pole v PostgreSQL

PostgreSQL usnadňuje práci s datovým typem pole. Někdy může být potřeba aktualizovat pole v PostgreSQL novými daty. V tomto článku se podíváme na to, jak změnit pole v PostgreSQL, upravit pole v PostgreSQL a sloučit pole v PostgreSQL.


Jak aktualizovat pole v PostgreSQL

Zde jsou různé způsoby aktualizace pole v PostgreSQL. Řekněme, že máte následující sloupec pole.

# create table employees ( 
     id int, 
     name varchar, 
     sales integer[] 
);

Ve výše uvedeném příkladu jsme vytvořili sloupec prodej jako pole celých čísel.

Vložme také data do našeho sloupce pole.

# insert into employees (id, name, sales)
          values (1, ' John Doe', ARRAY [9,7,5,4,3,2]),
                 (2, ' Jim Day', ARRAY [8,6,3,2,9,2]);

# select * from employees;
 id |   name    |     sales
----+-----------+---------------
  1 |  John Doe | {9,7,5,4,3,2}
  2 |  Jim Day  | {8,6,3,2,9,2}


Nahradit všechny prvky v poli

Všechny prvky pole můžete snadno nahradit pomocí příkazu UPDATE … SET.

# update employees 
  set sales = '{10,12,31,10,11}' 
  where id=1;

# select * from employees;
 id |   name    |      sales
----+-----------+------------------
  2 |  Jim Day  | {8,6,3,2,9,2}
  1 |  John Doe | {10,12,31,10,11}

Ve výše uvedeném příkazu UPDATE poskytujeme hodnoty pole ve složených závorkách v jednoduchých uvozovkách. Postgres nahradí celé pole pro řádky, které odpovídají podmínce WHERE.


Nahradit některé prvky v poli

Můžete také nahradit konkrétní prvky pole, jak je uvedeno níže.

=# update employees
             set sales[2] = 41
             where id=1;

# select * from employees;
 id |   name    |      sales
----+-----------+------------------
  2 |  Jim Day  | {8,6,3,2,9,2}
  1 |  John Doe | {10,41,31,10,11}

Ve výše uvedeném příkazu nahradíme pouze druhý prvek pole nastavením hodnoty sales[2].


Přidat a přidat před pole

Pomocí array_append můžete také připojit a předřadit hodnoty k vašemu poli a array_prepend funkce, jak je uvedeno níže.

# update employees
             set sales = array_append(sales, 1)
             where id=1;

# select * from employees;
 id |   name    |       sales
----+-----------+--------------------
  2 |  Jim Day  | {8,6,3,2,9,2}
  1 |  John Doe | {10,41,31,10,11,1}

Zde je dotaz, který se má přidat před pole.

# update employees
           set sales = array_prepend(9,sales)
           where id=1;

# select * from employees;
 id |   name    |        sales
----+-----------+----------------------
  2 |  Jim Day  | {8,6,3,2,9,2}
  1 |  John Doe | {9,10,41,31,10,11,1}

Všimněte si prosím v array_append , musíte zadat hodnotu, která má být připojena jako druhý argument ve funkci. V případě array_prepend , musíte jej zadat jako první prvek.


Odstranit prvek pole

Podobně můžete použít array_remove funkce k odstranění prvku z pole.

# select array_remove(sales, 9) as reduced_array from employees where id=1;
   reduced_array
--------------------
 {10,41,31,10,11,1}

V array_remove musíte zadat prvek pole, který chcete odstranit.


Sloučit pole v PostgreSQL

V PostgreSQL můžete sloučit dvě pole pomocí array_cat funkce

# select array_cat(sales, '{9,3}') as merged_array 
           from employees where id=1;
       merged_array
--------------------------
 {9,10,41,31,10,11,1,9,3}

# select array_cat(array[1,2],'{9,3}') as merged_array 
      from employees where id=1;
 merged_array
--------------
 {1,2,9,3}

V array_cat můžete předat sloupec pole nebo pomocí doslovného objektu ARRAY.

Potřebujete reportovací nástroj pro PostgreSQL? Ubiq usnadňuje vizualizaci dat během několika minut a sledování na řídicích panelech v reálném čase. Vyzkoušejte to ještě dnes!

  1. PostgreSQL:jak nainstalovat rozšíření plpythonu

  2. Přehled nového DBaaS od MariaDB - SkySQL

  3. Jak získat přístup k PhpMyAdmin bez přihlášení k cPanel

  4. Doporučení pro rutinní zálohování obsahu