दिलचस्प पोस्ट
Sqlcmd का उपयोग कर SQL सर्वर से सीएसवी स्वरूप के रूप में डेटा कैसे निर्यात करें? Int main () और int main (शून्य) के बीच अंतर? Nginx 403 सभी फाइलों के लिए मना किया विजेट के फ़ॉन्ट परिवार / आकार को जानने के बिना विजेट का फ़ॉन्ट शैली कैसे बदल सकता है? सी # – कैसे वर्ग क्षेत्रों और सेट गुणों के माध्यम से दोबारा लेबल के साथ आर में क्षैतिज डेंडर्रोग्राम मिलीसेकेंड को कैसे पार्स करना है? द्विआधारी को एएससीआईआई में परिवर्तित करें और इसके ठीक विपरीत मैं सभी घटकों में कुंजी प्रेस (जावा स्विंग के भीतर) के लिए कैसे सुन सकता हूँ? कैसे एक MySQLi तैयार बयान गूंज? विंडोज सर्विस में इस्तेमाल करने के लिए सर्वश्रेष्ठ टाइमर सी # रिलीज संस्करण अभी भी .पीडीबी फ़ाइल है PostgreSQL – "इन" खंड में पैरामीटर की अधिकतम संख्या? JTable getrelectedRow चयनित पंक्ति अनुक्रमणिका वापस नहीं करता है सर्वाधिक कुशल जावा-आधारित स्ट्रीमिंग XSLT प्रोसेसर क्या है?

Postgres में CSV फ़ाइल से मूल्यों के साथ चयनित पंक्तियों को कैसे अपडेट करें?

मैं पोस्टग्रेज़ का उपयोग कर रहा हूं और एक बड़ी अद्यतन क्वेरी बनाना चाहूंगा जो कि एक सीएसवी फ़ाइल से चुनेगी, कहने के लिए मुझे मिल गया एक मेज है (id, banana, apple)

मैं एक अपडेट चलाऊँगा जो केले को बदलता है और एपल्स नहीं, प्रत्येक नया केला और उनका आईडी एक सीएसवी फ़ाइल में होगा।

मैंने पोस्टग्रेज़ साइट को देखने की कोशिश की लेकिन उदाहरण मुझे मार रहे हैं

Solutions Collecting From Web of "Postgres में CSV फ़ाइल से मूल्यों के साथ चयनित पंक्तियों को कैसे अपडेट करें?"

मैं फ़ाइल को अस्थायी तालिका में COPY कर COPY और वहां से वास्तविक तालिका को अपडेट कर दूंगा। इस तरह दिख सकता है:

 CREATE TEMP TABLE tmp_x (id int, apple text, banana text); -- but see below COPY tmp_x FROM '/absolute/path/to/file' (FORMAT csv); UPDATE tbl SET banana = tmp_x.banana FROM tmp_x WHERE tbl.id = tmp_x.id; DROP TABLE tmp_x; -- else it is dropped at end of session automatically 

अगर आयातित तालिका तालिका से ठीक से अपडेट होती है, तो यह सुविधाजनक हो सकती है:

 CREATE TEMP TABLE tmp_x AS SELECT * FROM tbl LIMIT 0; 

बाधाओं के बिना मौजूदा तालिका की संरचना से मेल खाने वाली एक खाली अस्थायी तालिका बनाता है।

बिग टेबल

यदि आयात-तालिका बड़ी है तो यह सत्र के लिए अस्थायी रूप से temp_buffers बढ़ाने के लिए भुगतान कर सकता है (सत्र में पहली चीज़):

 SET temp_buffers = '500MB'; -- example value 

अस्थायी तालिका में एक सूचकांक जोड़ें:

 CREATE INDEX tmp_x_id_idx ON tmp_x(id); 

और मैन्युअल रूप से एनालिज़ चलाएं, चूंकि अस्थायी तालिकाओं को ऑटोवॉक्वायम / ऑटो-विश्लेषण द्वारा कवर नहीं किया गया है

 ANALYZE tmp_x; 

संबंधित उत्तर:

  • आईडी द्वारा लाखों पंक्तियों को हटाने का सर्वोत्तम तरीका
  • मैं सामान्य डेटा को अस्थायी स्कीमा से एक अस्थायी तालिका में कैसे सम्मिलित कर सकता / सकती हूं?
  • डुप्लिकेट प्रविष्टियों को कैसे हटाएं?