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

किसी csv फ़ाइल के कुछ स्तंभों को तालिका में कॉपी करें

यदि यह एक तदर्थ कार्य है

इनपुट फ़ाइल में सभी स्तंभों के साथ एक अस्थायी तालिका बनाएं

create temporary table t (x1 integer, ... , x10 text)

फ़ाइल से इसमें कॉपी करें:

copy t (x1, ... , x10)
from '/path/to/my_file'
with (format csv)

अब अस्थायी से निश्चित तालिका में डालें:

insert into my_table (x2, x5, x7, x10)
select x2, x5, x7, x10
from t

और इसे छोड़ दें:

drop table t

अगर यह बार-बार होने वाला काम है

file_fdw का उपयोग करें विस्तार। सुपरयूज़र के रूप में:

create extension file_fdw;

create server my_csv foreign data wrapper file_fdw;

create foreign table my_csv (
    x1 integer,
    x2 text,
    x3 text
) server my_csv
options (filename '/tmp/my_csv.csv', format 'csv' )
;

इसे पढ़ने वाले उपयोगकर्ता को टेबल पर चुनिंदा अनुमति दें:

grant select on table my_csv to the_read_user;

फिर जब भी आवश्यक हो सीधे सीएसवी फ़ाइल से पढ़ें जैसे कि यह एक तालिका थी:

insert into my_table (x2)
select x2
from my_csv
where x1 = 2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Django + Postgres + बड़ी समय श्रृंखला

  2. MySQL में PostgreSQL का date_trunc

  3. पोस्टग्रेज चयन में कॉलम को कैसे जोड़ना है?

  4. इकाई ढांचा PostgreSQL

  5. PostgreSQL:केस असंवेदनशील स्ट्रिंग तुलना