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

JSONB कॉलम में किसी JSON ऑब्जेक्ट को नेस्टेड सरणी में कैसे धकेलें?

jsonb_set() करने की ट्रिक क्या यह एक jsonb . के हिस्से को संशोधित करता है वस्तु, लेकिन यह पूरी वस्तु देता है। तो आप इसे कॉलम का वर्तमान मान और जिस पथ को आप संशोधित करना चाहते हैं ("पृष्ठ" यहां, एक स्ट्रिंग सरणी के रूप में) पास करते हैं, फिर आप मौजूदा सरणी लेते हैं (my_column->'pages' ) और संलग्न करें || इसके लिए नई वस्तु। jsonb . के अन्य सभी भाग वस्तु जस की तस बनी रहती है। आप कॉलम के लिए एक पूरी तरह से नई वस्तु को प्रभावी ढंग से असाइन कर रहे हैं लेकिन यह अप्रासंगिक है क्योंकि एक UPDATE वैसे भी भौतिक तालिका में एक नई पंक्ति लिखता है।

UPDATE my_table
SET my_column = jsonb_set(my_column, '{pages}', my_column->'pages' || new_json, true);

वैकल्पिक create_missing पैरामीटर true पर सेट है यदि यह पहले से मौजूद नहीं है तो यहां "पेज" ऑब्जेक्ट जोड़ता है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:डेटाबेस डंप से पुनर्स्थापित करें - सिंटैक्स त्रुटि

  2. PostgreSQL में डेटाबेस को सूचीबद्ध करना और स्विच करना

  3. महीना () फ़ंक्शन और वर्ष () jpa2 के माध्यम से postgresql में कार्य करता है

  4. पोस्टग्रेज़ नई पंक्ति का संदर्भ देने वाली पंक्ति के लिए NULL मान फ़ंक्शन करता है

  5. कई से कई टेबल - प्रदर्शन खराब है