2011-10-27 14 views
27

उत्पन्न करता है मेरे पास दो कॉलम के साथ एक CSV फ़ाइल है: शहर और ज़िप कोड। मैं copy कमांड का उपयोग करके इस फ़ाइल को PostgreSQL तालिका में कॉपी करने में सक्षम होना चाहता हूं और साथ ही ऑटो id मान उत्पन्न करता हूं।PostgreSQL कॉपी कमांड प्राथमिक कुंजी आईडी

तालिका में निम्नलिखित कॉलम हैं: id, city, और zipcode

मेरी सीएसवी फ़ाइल में केवल: city और zipcode है।

उत्तर

43

COPY command अपनी मेज id के लिए एक serial स्तंभ का उपयोग करता है, तो अपने आप में है कि सभी को क्या करना चाहिए:

अगर वहाँ उस स्तंभ सूची में नहीं हैं तालिका में किसी भी स्तंभ हैं, डाल देगा से कॉपी उन कॉलम के लिए डिफ़ॉल्ट मान।

तो तुम कहने के लिए सक्षम होना चाहिए:

copy table_name(city, zipcode) from ... 

और id हमेशा की तरह उत्पन्न हो जाएगा। यदि आपके पास कॉलम id (या मैन्युअल रूप से संलग्न अनुक्रम) के लिए नहीं है, तो आप हाथ से अनुक्रम जोड़ सकते हैं, अपनी कॉपी कर सकते हैं, और फिर अनुक्रम को अलग कर सकते हैं।

+0

यहां बताया गया है कि मैंने सीएसवी से पोस्टग्रेस तक डेटा की प्रतिलिपि बनाई: \ copy company_infos (ईमेल, यूआरएल, create_at, update_at) '/Users/john/company_infos_heroku4.csv' से (फॉर्मैट सीएसवी, हेडर सच); – yaru

संबंधित मुद्दे