PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment mettre à jour un tableau dans PostgreSQL

PostgreSQL facilite le travail avec le type de données tableau. Parfois, vous devrez peut-être mettre à jour le tableau dans PostgreSQL avec de nouvelles données. Dans cet article, nous verrons comment changer de tableau dans PostgreSQL, modifier un tableau dans PostgreSQL et fusionner des tableaux dans PostgreSQL.


Comment mettre à jour un tableau dans PostgreSQL

Voici les différentes façons de mettre à jour un tableau dans PostgreSQL. Disons que vous avez la colonne de tableau suivante.

# create table employees (  id int,  name varchar,  sales integer[]  ); 

Dans l'exemple ci-dessus, nous avons créé la colonne ventes sous la forme d'un tableau d'entiers.

Insérons également des données dans notre colonne tableau.

# insérez dans les employés (id, nom, ventes) les valeurs (1, ' John Doe', ARRAY [9,7,5,4,3,2]), (2, ' Jim Day', ARRAY [8 ,6,3,2,9,2]);# sélectionnez * parmi les employés ; identifiant | nom | ventes----+-----------+--------------- 1 | Jean Doe | {9,7,5,4,3,2} 2 | Jim Day | {8,6,3,2,9,2}


Remplacer tous les éléments d'un tableau

Vous pouvez facilement remplacer tous les éléments d'un tableau à l'aide de l'instruction UPDATE … SET.

# mise à jour des employés set sales ='{10,12,31,10,11}' where id=1;# select * from employee; identifiant | nom | ventes----+-----------+------------------ 2 | Jim Day | {8,6,3,2,9,2} 1 | Jean Doe | {10,12,31,10,11} 

Dans l'instruction UPDATE ci-dessus, nous fournissons des valeurs de tableau entre accolades entre guillemets simples. Postgres remplacera le tableau entier pour les lignes qui correspondent à la condition WHERE.


Remplacer certains éléments dans un tableau

Vous pouvez également remplacer des éléments de tableau spécifiques comme indiqué ci-dessous.

=# mise à jour des employés défini ventes[2] =41 où id=1;# sélectionnez * parmi les employés ; identifiant | nom | ventes----+-----------+------------------ 2 | Jim Day | {8,6,3,2,9,2} 1 | Jean Doe | {10,41 ,31,10,11}

Dans l'instruction ci-dessus, nous remplaçons uniquement le deuxième élément du tableau en définissant la valeur sales[2].


Ajouter et ajouter au tableau

Vous pouvez également ajouter et préfixer des valeurs à votre tableau en utilisant array_append et array_prepend fonctions respectivement, comme indiqué ci-dessous.

# mise à jour des employés mis en ventes =array_append(ventes, 1) où id=1;# sélectionnez * parmi les employés ; identifiant | nom | ventes----+-----------+-------------------- 2 | Jim Day | {8,6,3,2,9,2} 1 | Jean Doe | {10,41,31,10,11,1 } 

Voici la requête à ajouter à un tableau.

# mise à jour des employés mis en ventes =array_prepend(9,ventes) où id=1;# sélectionnez * parmi les employés ; identifiant | nom | ventes----+-----------+---------------------- 2 | Jim Day | {8,6,3,2,9,2} 1 | Jean Doe | {9 ,10,41,31,10,11,1}

Veuillez noter que dans array_append , vous devez spécifier la valeur à ajouter comme deuxième argument dans function. En cas de array_prepend , vous devez le spécifier comme premier élément.


Supprimer l'élément du tableau

De même, vous pouvez utiliser array_remove fonction pour supprimer un élément du tableau.

# select array_remove(sales, 9) as reduce_array from employee where id=1 ; tableau_réduit-------------------- {10,41,31,10,11,1}

Dans array_remove vous devez spécifier l'élément de tableau que vous souhaitez supprimer.


Fusionner des tableaux dans PostgreSQL

Vous pouvez fusionner deux tableaux dans PostgreSQL en utilisant array_cat fonction

# select array_cat(sales, '{9,3}') as merged_array from employee 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 des employés où id=1 ; tableau_fusionné-------------- {1,2,9,3}

Dans array_cat fonction, vous pouvez passer une colonne de tableau ou utiliser un objet littéral ARRAY.

Besoin d'un outil de reporting pour PostgreSQL ? Ubiq facilite la visualisation des données en quelques minutes et la surveillance dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !