आप पूरी कमांड को छोड़े बिना और पोस्टग्रेज 14 को शामिल किए बिना त्रुटियों को नहीं छोड़ सकते। वर्तमान में कोई और अधिक परिष्कृत त्रुटि प्रबंधन नहीं है।
\copy SQL COPY के चारों ओर बस एक आवरण है कि चैनल psql के माध्यम से परिणाम देता है। COPY . के लिए मैनुअल :
COPY पहली त्रुटि पर संचालन बंद कर देता है। इससे COPY TO . की स्थिति में समस्या उत्पन्न नहीं होनी चाहिए , लेकिन लक्ष्य तालिका को COPY FROM . में पहले की पंक्तियां पहले ही मिल चुकी होंगी . ये पंक्तियाँ दृश्यमान या पहुँच योग्य नहीं होंगी, लेकिन वे अभी भी डिस्क स्थान घेरती हैं। यदि एक बड़ी कॉपी ऑपरेशन में विफलता अच्छी तरह से हुई तो यह काफी मात्रा में व्यर्थ डिस्क स्थान की राशि हो सकती है। आप VACUUM . का आह्वान करना चाह सकते हैं व्यर्थ स्थान को पुनः प्राप्त करने के लिए।
बोल्ड जोर मेरा। और:
<ब्लॉकक्वॉट>
COPY FROM यदि इनपुट फ़ाइल की किसी भी पंक्ति में अपेक्षा से अधिक या कम कॉलम हैं, तो त्रुटि उत्पन्न होगी।
COPY डेटा आयात/निर्यात करने का एक अत्यंत तेज़ तरीका है। परिष्कृत जांच और त्रुटि प्रबंधन इसे धीमा कर देगा।
त्रुटि लॉगिंग को COPY . में जोड़ने का प्रयास किया गया था पोस्टग्रेज 9.0 में लेकिन यह कभी प्रतिबद्ध नहीं था।
समाधान
इसके बजाय अपनी इनपुट फ़ाइल ठीक करें।
यदि आपकी इनपुट फ़ाइल में एक या अधिक अतिरिक्त कॉलम हैं और फ़ाइल अन्यथा संगत है , आप अपनी तालिका में डमी कॉलम जोड़ सकते हैं isa और बाद में उन्हें छोड़ दें। या (उत्पादन तालिकाओं के साथ क्लीनर) एक अस्थायी स्टेजिंग टेबल पर आयात करें और INSERT आपकी लक्ष्य तालिका में चयनित कॉलम (या भाव) isa वहाँ से।
विस्तृत निर्देशों के साथ संबंधित उत्तर:
- पोस्टग्रेज में CSV फ़ाइल के मानों के साथ चयनित पंक्तियों को कैसे अपडेट करें?
- कॉपी कमांड:csv से केवल विशिष्ट कॉलम कॉपी करें