sql >> Database teknologi >  >> RDS >> PostgreSQL

Sådan opdateres Array i PostgreSQL

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!

  1. Oracle partitioneret sekvens

  2. SQL Server-markørtyper - Hvad er statiske markører i SQL Server | SQL Server Tutorial / TSQL Tutorial

  3. 3 måder at formatere et tal til 2 decimaler i Oracle

  4. Sådan importeres og eksporteres CSV-filer ved hjælp af PHP og MySQL