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!