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
पर सेट है यदि यह पहले से मौजूद नहीं है तो यहां "पेज" ऑब्जेक्ट जोड़ता है।