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!