कैसे अद्यतन करने के लिए JSONB स्तंभ के मान से आ रही एक अन्य तालिका स्तंभ में PostgreSQL

0

सवाल

मैं एक स्रोत है, जो मेज, की सूची के नीचे की तरह:

। स्रोत

Id | part_no | category
1 | 01270-4 | Landscape
2 | 01102-3 | Sports

तो, मैं लक्ष्य के साथ तालिका jsonb स्तंभ (संयोजन) है , जो तरह की सूची नीचे दी गई;

। लक्ष्य

Id | part_no | combinations
7 | 01270-4 | {"subject":""}
8 | 01102-3 | {"subject":""}

मेरी समस्या है - कैसे मैं अद्यतन कर सकते हैं लक्ष्य के साथ तालिका jsonb स्तंभ (संयोजन) मूल्यों के साथ आने से स्रोत तालिका का उपयोग कर part_no स्तंभ?
उत्पादन की तरह:

Id | part_no | combinations
7 | 01270-4 | {"subject":"Landscape"}
8 | 01102-3 | {"subject":"Sports"}

मैं करने की कोशिश की लेकिन नीचे त्रुटि दे:

UPDATE public.target t
SET combinations = jsonb_set(combinations,'{subject}','s.category',false)
FROM public.source s
WHERE s.part_no = t.part_no;

त्रुटि: अमान्य इनपुट के लिए वाक्य रचना के प्रकार json पंक्ति 2: सेट संयोजनों = jsonb_set(संयोजन,'{विषय}', 'एस.श्रेणी... ^ विवरण: टोकन "s" अमान्य है । संदर्भ: JSON डेटा, लाइन 1: एस... SQL राज्य: 22P02 चरित्र: 77

jsonb postgresql
2021-11-16 15:03:01
1

सबसे अच्छा जवाब

1

आप का उपयोग करना चाहिए to_jsonb समारोह में परिवर्तित करने के लिए s.category करने के लिए JSON

डेमो

UPDATE public.target t
SET combinations = jsonb_set(combinations,'{subject}',to_jsonb(s.category),false)
FROM public.source s
WHERE s.part_no = t.part_no

या आप उपयोग कर सकते हैं नमूना के लिए संरचना में शामिल हों और अद्यतन दो JSON क्षेत्र:

डेमो

UPDATE public.target t
SET combinations = combinations || jsonb_build_object('subject', s.category)
FROM public.source s
WHERE s.part_no = t.part_no
2021-11-16 15:26:04

एकदम सही! बहुत बहुत धन्यवाद Pooya. तुम आदमी हो!
Bogart

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में