PostgreSQL gör det enkelt att arbeta med arraydatatyp. Ibland kan du behöva uppdatera array i PostgreSQL med ny data. I den här artikeln kommer vi att titta på hur man ändrar array i PostgreSQL, ändrar array i PostgreSQL och slår samman arrayer i PostgreSQL.
Hur man uppdaterar Array i PostgreSQL
Här är de olika sätten att uppdatera array i PostgreSQL. Låt oss säga att du har följande matriskolumn.
#create table employees (
id int,
name varchar,
sales integer[]
);
I exemplet ovan har vi skapat kolumnen försäljning som en matris av heltal.
Låt oss också infoga data i vår matriskolumn.
# 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}
Ersätt alla element i en array
Du kan enkelt ersätta alla element i en array med UPDATE … SET-satsen.
# 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 ovanstående UPDATE-uttalande tillhandahåller vi arrayvärden inom hängslen omgivna av enkla citattecken. Postgres kommer att ersätta hela arrayen för rader som matchar WHERE-villkoret.
Ersätt vissa element i en array
Du kan också ersätta specifika array-element som visas nedan.
=# 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 ovanstående uttalande ersätter vi endast det andra matriselementet genom att ställa in försäljningsvärde[2].
Lägg till och prepend till array
Du kan också lägga till och lägga till värden i din array med array_append och array_prepend fungerar respektive, som visas nedan.
# 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}
Här är frågan som ska läggas till en array.
# 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}
Observera, i array_append måste du ange värdet som ska läggas till som andra argument i funktion. I fallet med array_prepend måste du ange det som det första elementet.
Ta bort arrayelement
På samma sätt kan du använda array_remove funktion för att ta bort element från 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 måste ange arrayelementet som du vill ta bort.
Slå samman matriser i PostgreSQL
Du kan slå samman två arrayer i PostgreSQL med 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 skicka array-kolumn eller använda ARRAY literal object.
Behöver du ett rapporteringsverktyg för PostgreSQL? Ubiq gör det enkelt att visualisera data på några minuter och övervaka i realtidsinstrumentpaneler. Prova det idag!