PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

कमांड लाइन से PostgreSQL CSV आयात

स्वीकृत उत्तर में समाधान केवल सर्वर पर काम करेगा और जब क्वेरी निष्पादित करने वाले उपयोगकर्ता को इस SO उत्तर में बताए अनुसार फ़ाइल को पढ़ने की अनुमति होगी।

अन्यथा, अधिक लचीला तरीका SQL के COPY . को प्रतिस्थापित करना है psql . के साथ कमांड करें का "मेटा-कमांड" जिसे \copy कहा जाता है जो "असली" कॉपी के समान सभी विकल्प लेता है, लेकिन क्लाइंट के अंदर चलाया जाता है (बिना किसी आवश्यकता के ; अंत में):

psql -c "\copy tbname FROM '/tmp/the_file.csv' delimiter '|' csv"

दस्तावेज़ों के अनुसार, \copy आदेश:

<ब्लॉकक्वॉट>

एक फ्रंटएंड (क्लाइंट) कॉपी करता है। यह एक ऑपरेशन है जो SQL COPY कमांड चलाता है, लेकिन सर्वर द्वारा निर्दिष्ट फ़ाइल को पढ़ने या लिखने के बजाय, psql फ़ाइल को पढ़ता या लिखता है और सर्वर और स्थानीय फ़ाइल सिस्टम के बीच डेटा को रूट करता है। इसका मतलब है कि फ़ाइल पहुंच और विशेषाधिकार स्थानीय उपयोगकर्ता के हैं, सर्वर नहीं, और किसी SQL सुपरयुसर विशेषाधिकारों की आवश्यकता नहीं है।

इसके अलावा, यदि the_file.csv पहली पंक्ति में हेडर होता है, इसे header . जोड़कर पहचाना जा सकता है उपरोक्त आदेश के अंत में:

psql -c "\copy tbname FROM '/tmp/the_file.csv' delimiter '|' csv header"


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जब कोई त्रुटि आती है तो मैं पोस्टग्रेस स्क्रिप्ट को कैसे रोक सकता हूं?

  2. एकल SQL कथन का उपयोग करके एकाधिक अधिकतम () मानों का चयन करना

  3. पाठ और वर्चर के बीच अंतर (चरित्र भिन्न)

  4. क्लस्टरकंट्रोल का उपयोग करके एक डॉकटर कंटेनर में पोस्टग्रेएसक्यूएल को कैसे तैनात करें

  5. एक तालिका के SQL अद्यतन फ़ील्ड दूसरे के फ़ील्ड से