मुझे किसी अन्य से एक तालिका अपडेट करने की आवश्यकता है, और मुझे सभी कॉलम अपडेट करने की आवश्यकता है। SET
क्लॉज में हर कॉलम को सूचीबद्ध करने के अलावा , क्या उन सभी को एक साथ अपडेट करने का कोई तरीका है? ऐशे ही:
update tableA
set * = tableB.*
from tableB where tableA.id = tableB.id
मैंने psql में कोशिश की, यह काम नहीं करता है। मुझे हर कॉलम को इस तरह सूचीबद्ध करना है:
update tableA
set c1 = tableB.c1, c2 = tableB.c2, ...
from tableB where tableA.id = tableB.id
tableB
उपयोग बनाया जाता है create .. like tableA
। इसलिए वे मूल रूप से समान हैं। और इसका कारण यह है कि मुझे एक अस्थायी तालिका में .csv डेटा लोड करने की आवश्यकता है tableB
और फिर tableA
नए डेटा के आधार पर अपडेट करना होगा tableB
। tableA
जितना संभव हो उतना कम लॉक करने की आवश्यकता है और tableA
अखंडता बनाए रखने की आवश्यकता है। मुझे यकीन नहीं है कि 'डिलीट तो इंसर्ट' एक अच्छा विकल्प होगा?