PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

मैं PostgreSQL में JSON फ़ाइल कैसे आयात कर सकता हूं?

आप JSON को एक SQL कथन में फीड कर सकते हैं जो जानकारी को निकालता है और उसे तालिका में सम्मिलित करता है। अगर JSON एट्रिब्यूट का नाम बिल्कुल टेबल कॉलम जैसा है, तो आप कुछ इस तरह कर सकते हैं:

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;

नए ग्राहक जोड़े जाएंगे, मौजूदा ग्राहकों को अपडेट किया जाएगा। "मैजिक" भाग json_populate_recordset(null::customer, doc) है जो JSON ऑब्जेक्ट्स का एक रिलेशनल प्रतिनिधित्व उत्पन्न करता है।

उपरोक्त एक तालिका परिभाषा को इस तरह मानता है:

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

यदि डेटा एक फ़ाइल के रूप में प्रदान किया जाता है, तो आपको पहले उस फ़ाइल को डेटाबेस में किसी तालिका में रखना होगा। कुछ इस तरह:

create unlogged table customer_import (doc json);

फिर फ़ाइल को उस तालिका की एक पंक्ति में अपलोड करें, उदा। \copy का उपयोग कर psql . में कमांड (या जो भी आपका SQL क्लाइंट ऑफ़र करता है):

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

फिर आप उपरोक्त कथन का उपयोग कर सकते हैं, बस सीटीई को हटा दें और स्टेजिंग टेबल का उपयोग करें:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटा को सॉर्ट न करें कैसे रखें?

  2. PostgreSQL 9.2.1 . में लूपिंग ट्रिगर कॉल से कैसे बचें

  3. PostgreSQL के लिए प्रतिकृति टोपोलॉजी परिवर्तन करना

  4. PostgreSQL के प्रदर्शन को बेंचमार्क कैसे करें

  5. वे मान खोजें जिनमें PostgreSQL में संख्याएँ नहीं हैं