PostgreSQL gør det nemt at arbejde med array datatype. Nogle gange skal du muligvis opdatere array i PostgreSQL med nye data. I denne artikel vil vi se på, hvordan man ændrer array i PostgreSQL, ændrer array i PostgreSQL og flettes arrays i PostgreSQL.
Sådan opdaterer du Array i PostgreSQL
Her er de forskellige måder at opdatere array på i PostgreSQL. Lad os sige, at du har følgende matrixkolonne.
#create table employees (
id int,
name varchar,
sales integer[]
);
I ovenstående eksempel har vi oprettet kolonne salg som en matrix af heltal.
Lad os også indsætte data i vores matrixkolonne.
# 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}
Erstat alle elementer i et array
Du kan nemt erstatte alle elementer i et array ved hjælp af UPDATE … SET-sætning.
# 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}
I ovenstående UPDATE-erklæring giver vi matrixværdier inden for krøllede parenteser omgivet af enkelte anførselstegn. Postgres vil erstatte hele arrayet for rækker, der matcher WHERE-tilstanden.
Erstat nogle elementer i et array
Du kan også erstatte specifikke array-elementer som vist nedenfor.
=# 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}
I ovenstående erklæring erstatter vi kun det andet array-element ved at indstille salgsværdien[2].
Tilføj og forudsæt til array
Du kan også tilføje og tilføje værdier til dit array ved hjælp af array_append og array_prepend fungerer som vist nedenfor.
# 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}
Her er forespørgslen, der skal sættes foran til en matrix.
# 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}
Bemærk venligst, i array_append , skal du angive den værdi, der skal tilføjes som andet argument i funktion. I tilfælde af array_prepend , skal du angive det som det første element.
Fjern array-element
På samme måde kan du bruge array_remove funktion til at fjerne element fra array.
# select array_remove(sales, 9) as reduced_array from employees where id=1; reduced_array -------------------- {10,41,31,10,11,1}
I array_remove du skal angive det array-element, du vil fjerne.
Flet arrays i PostgreSQL
Du kan flette to arrays i PostgreSQL ved hjælp af array_cat funktion
# 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}
I array_cat funktion, kan du sende array kolonne eller bruge ARRAY bogstavelig objekt.
Har du brug for et rapporteringsværktøj til PostgreSQL? Ubiq gør det nemt at visualisere data på få minutter og overvåge i dashboards i realtid. Prøv det i dag!