sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man infogar i Array i PostgreSQL

Ibland kan du behöva välja i array, lägga till array eller infoga array av objekt i PostgreSQL. I den här artikeln kommer vi att titta på hur man infogar i array i PostgreSQL.


Hur man infogar i Array i PostgreSQL

Här är stegen för att infoga i array i PostgreSQL. Låt oss säga att du har följande tabell anställda(id,namn, telefonnummer) så att telefonnummerkolumnen är en array av strängar.

create table employees ( 
     id int,
     name varchar, 
     phone_numbers varchar[] 
);

Det finns två accepterade syntaxer att infoga i array i PostgreSQL – en med ARRAY-nyckelord och en annan med citattecken och hängslen.


Använda ARRAY-sökord

Här är SQL-frågan att infoga i array i PostgreSQL med ARRAY-nyckelord.

# insert into employees (id, name, phone_numbers)
         values (1, ' John Doe', ARRAY ['9998765432','9991234567']);

# select * from employees;
  id |   name    |      phone_numbers
 ----+-----------+-------------------------
   1 |  John Doe | {9998765432,9991234567}


I ovanstående fråga använder vi ARRAY [‘9998765432′,’9991234567’] för att infoga array i PostgreSQL-kolumnen.


Använda enkla citattecken och hängslen

Vi kan också infoga i PostgreSQL-arrayen med enkla citattecken och hängslen som visas nedan.

# insert into employees (id, name, phone_numbers)
  values (2, ' Jim Doe', '{"9996587432","9891334567"}');
 
# select * from employees;
  id |   name    |      phone_numbers
 ----+-----------+-------------------------
   1 |  John Doe | {9998765432,9991234567}
   2 |  Jim Doe  | {9996587432,9891334567}

I exemplet ovan använder vi ‘{“9996587432″,”9891334567”}’ att infoga i array i PostgreSQL.

Observera att i det här fallet måste de lockiga hängslen vara inneslutna inom enstaka citattecken. Dessutom, eftersom vi infogar strängvärden måste de omges av dubbla citattecken istället för enkla citattecken, annars får du ett syntaxfel.


Infoga array av objekt

Du kan också infoga array av objekt om du har en array av array-kolumn i PostgreSQL. Låt oss säga att du har följande tabell så att försäljning kolumn är en array av array.

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

Här är SQL-frågan för att infoga array av objekt i PostgreSQL.

# insert into employees (id, name, sales)
             values (2, ' Jim Doe', '{{150,100},{200,100}}');

# select * from employees;
  id |   name   |         sales
 ----+----------+-----------------------
   2 |  Jim Doe | {{150,100},{200,100}}

Observera att du måste omsluta varje arrayobjekt i separata klammerparenteser, innanför de huvudsakliga lockiga klammerparenteserna och enkla citattecken, ‘{{ 150 100} ,{ 200 100} }’ annars får du ett felmeddelande.


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!

  1. PostgreSQL multi INSERT...RETURNERAR med flera kolumner

  2. Introducerar ny funktion:Always On Availability Group

  3. Rails Migration byter kolumn för att använda Postgres-matriser

  4. Hur skapar man en Oracle-sekvens som börjar med maxvärde från en tabell?