How to load data from a text file in a PostgreSQL database?

后端 未结 4 848
無奈伤痛
無奈伤痛 2020-12-14 17:06

I have a file like (CSV file):

value1|value2|value2....

value1|value2|value2....

value1|value2|value2....

value1|value2|value2....

and w

相关标签:
4条回答
  • 2020-12-14 17:23

    There's Pgloader that uses the aforementioned COPY command and which can load data from csv (and MySQL, SQLite and dBase). It's also using separate threads for reading and copying data, so it's quite fast (interestingly enough, it got written from Python to Common Lisp and got a 20 to 30x speed gain, see blog post).

    To load the csv file one needs to write a little configuration file, like

    LOAD CSV  
      FROM 'path/to/file.csv' (x, y, a, b, c, d)  
      INTO postgresql:///pgloader?csv (a, b, d, c)  
      …
    
    0 讨论(0)
  • 2020-12-14 17:25

    Let consider that your data are in the file values.txt and that you want to import them in the database table myTable then the following query does the job

    COPY myTable FROM 'value.txt' (DELIMITER('|'));
    

    https://www.postgresql.org/docs/current/static/sql-copy.html

    0 讨论(0)
  • Check out the COPY command of Postgres:

    http://www.postgresql.org/docs/current/static/sql-copy.html

    0 讨论(0)
  • 2020-12-14 17:39

    The slightly modified version of COPY below worked better for me, where I specify the CSV format. This format treats backslash characters in text without any fuss. The default format is the somewhat quirky TEXT.

    COPY myTable FROM '/path/to/file/on/server' ( FORMAT CSV, DELIMITER('|') );
    
    0 讨论(0)
提交回复
热议问题