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

Hvordan kan jeg importere en JSON-fil til PostgreSQL?

Du kan føre JSON ind i en SQL-sætning, der udtrækker oplysningerne og indsætter dem i tabellen. Hvis JSON-attributterne har nøjagtigt navnet som tabelkolonnerne, kan du gøre noget som dette:

with customer_json (doc) as (
   values 
    ('[
      {
        "id": 23635,
        "name": "Jerry Green",
        "comment": "Imported from facebook."
      },
      {
        "id": 23636,
        "name": "John Wayne",
        "comment": "Imported from facebook."
      }
    ]'::json)
)
insert into customer (id, name, comment)
select p.*
from customer_json l
  cross join lateral json_populate_recordset(null::customer, doc) as p
on conflict (id) do update 
  set name = excluded.name, 
      comment = excluded.comment;

Nye kunder vil blive indsat, eksisterende vil blive opdateret. Den "magiske" del er json_populate_recordset(null::customer, doc) som genererer en relationel repræsentation af JSON-objekterne.

Ovenstående forudsætter en tabeldefinition som denne:

create table customer 
(
  id        integer primary key,
  name      text not null,
  comment   text
);

Hvis dataene leveres som en fil, skal du først lægge den fil ind i en tabel i databasen. Noget som dette:

create unlogged table customer_import (doc json);

Upload derefter filen i en enkelt række i den tabel, f.eks. ved hjælp af \copy kommando i psql (eller hvad din SQL-klient tilbyder):

\copy customer_import from 'customers.json' ....

Så kan du bruge ovenstående erklæring, bare fjerne CTE og bruge iscenesættelsestabellen:

insert into customer (id, name, comment)
select p.*
from customer_import l
  cross join lateral json_populate_recordset(null::customer, doc) as p
on conflict (id) do update 
  set name = excluded.name, 
      comment = excluded.comment;


  1. ListView Kontrol Træk slip hændelser Håndtering

  2. Oracle - Sådan opretter du en skrivebeskyttet bruger

  3. Databaseskift og failover for Drupal-websteder, der bruger MySQL eller PostgreSQL

  4. Analyse af MS SQL Server for dem, der ser det for første gang