PostgreSQL semplifica il lavoro con il tipo di dati array. A volte potrebbe essere necessario aggiornare l'array in PostgreSQL con nuovi dati. In questo articolo, vedremo come modificare l'array in PostgreSQL, modificare l'array in PostgreSQL e unire gli array in PostgreSQL.
Come aggiornare l'array in PostgreSQL
Ecco i diversi modi per aggiornare l'array in PostgreSQL. Supponiamo che tu abbia la seguente colonna dell'array.
#create table employees (
id int,
name varchar,
sales integer[]
);
Nell'esempio sopra, abbiamo creato la colonna vendite come matrice di numeri interi.
Inseriamo anche i dati nella nostra colonna dell'array.
# 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}
Sostituisci tutti gli elementi in un Array
Puoi facilmente sostituire tutti gli elementi di un array usando l'istruzione 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}
Nell'istruzione UPDATE sopra, forniamo valori di matrice tra parentesi graffe racchiuse tra virgolette singole. Postgres sostituirà l'intero array per le righe che corrispondono alla condizione WHERE.
Sostituisci alcuni elementi in un Array
Puoi anche sostituire elementi di array specifici come mostrato di seguito.
=# 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}
Nella dichiarazione precedente, sostituiamo solo il secondo elemento dell'array impostando il valore sales[2].
Aggiungi e anteponi all'array
Puoi anche aggiungere e anteporre valori al tuo array usando array_append e array_prepend rispettivamente, come mostrato di seguito.
# 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}
Ecco la query da anteporre a un 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}
Nota, in array_append , è necessario specificare il valore da aggiungere come secondo argomento nella funzione. In caso di array_prepend , devi specificarlo come primo elemento.
Rimuovi l'elemento dell'array
Allo stesso modo, puoi usare array_remove funzione per rimuovere l'elemento dall'array.
# select array_remove(sales, 9) as reduced_array from employees where id=1; reduced_array -------------------- {10,41,31,10,11,1}
In array_remove devi specificare l'elemento dell'array che vuoi rimuovere.
Unisci gli array in PostgreSQL
Puoi unire due array in PostgreSQL usando array_cat funzione
# 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}
In array_cat funzione, puoi passare la colonna dell'array o usare l'oggetto letterale ARRAY.
Hai bisogno di uno strumento di reporting per PostgreSQL? Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!