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

Postgresql में कॉलम के रूप में एक जेसन ऑब्जेक्ट कैसे प्राप्त करें?

आप ऐसा "गतिशील रूप से" नहीं कर सकते। आपको वे कॉलम निर्दिष्ट करने होंगे जिन्हें आप रखना चाहते हैं:

select name, description, id, 
       data ->> 'tax' as tax,
       data ->> 'other_attribute' as other_attribute
from core;

यदि आप बहुत कुछ करते हैं, तो आप इसे एक दृश्य में रखना चाहेंगे।

एक अन्य विकल्प पोस्टग्रेज में एक ऑब्जेक्ट प्रकार बनाना है जो आपके JSON में विशेषताओं का प्रतिनिधित्व करता है, उदा।

create type core_type as (id integer, tax numeric, price numeric, code varchar);

फिर आप JSON को उस प्रकार में कास्ट कर सकते हैं और JSON से संबंधित विशेषताएँ स्वचालित रूप से कॉलम में परिवर्तित हो जाएंगी:

उपरोक्त प्रकार और निम्नलिखित JSON के साथ:{"id": "100", "tax": "4.5", "price": "10", "code": "YXCV"} आप यह कर सकते हैं:

select id, (json_populate_record(null::core_type, data)).*
from core;

और यह वापस आ जाएगा:

id | tax  | price | code
---+------+-------+-----
 1 | 4.50 |    10 | YXCV

लेकिन आपको यह सुनिश्चित करने की आवश्यकता है कि प्रत्येक JSON मान कर सकता है संबंधित ऑब्जेक्ट फ़ील्ड के प्रकार पर कास्ट किया जाए।

यदि आप ऑब्जेक्ट प्रकार बदलते हैं, तो इसका उपयोग करने वाली कोई भी क्वेरी स्वचालित रूप से अपडेट हो जाएगी। तो आप केंद्रीय परिभाषा के माध्यम से अपनी रुचि के कॉलम प्रबंधित कर सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Heroku . पर पोस्टग्रेस डीबी को नष्ट करना

  2. माइग्रेशन के लिए PostgreSQL विदेशी कुंजी जांच अक्षम करें

  3. इसके कारण:org.postgresql.util.PSQLException:FATAL:उपयोगकर्ता व्यवस्थापक के लिए पासवर्ड प्रमाणीकरण विफल

  4. हरोकू पर रेल 3.1 में उच्चारण असंवेदनशील खोज को पोस्टग्रेज करता है

  5. PostgreSQL से कनेक्ट करने के लिए pyspark का उपयोग करना