将`tsv`文件插入postgresql db

Ann*_*lee 19 database postgresql database-design insert tsv

我有几个文件保存为tsv.我想将它们插入到postgresqldb中,用sql分析它们.

但是,我的问题是如何将INSERT这个tsv文件转换成postgresql 9.2windows 7

感谢您的回复!

PS.:我创建了具有正确值的表格,如:

CREATE TABLE ratings (distribution VARCHAR, votes VARCHAR, rank FLOAT, title VARCHAR);

该文件位于以下目录中:

C:/Users/testUser/Desktop/TSV/ratings.list.tsv

Rya*_*lah 24

你想要这样的东西:

COPY ratings FROM 'C:/Users/testUser/Desktop/TSV/ratings.list.tsv' DELIMITER E'\t';
Run Code Online (Sandbox Code Playgroud)

E'\t'是必需的,否则你会得到这样的错误:

错误:COPY的DELIMITER必须是单个单字节字符


如果TSV中的列与表没有完美对齐,您还可以通过执行以下操作来定义映射:

COPY ratings (column_1, column_2, ... column_n)
  FROM 'C:/Users/testUser/Desktop/TSV/ratings.list.tsv'
  DELIMITER E'\t';
Run Code Online (Sandbox Code Playgroud)


Den*_*rdy 15

对于制表符分隔值,您可以使用COPY:

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

根据文件的确切格式,它可能类似于:

COPY ratings FROM 'C:/Users/testUser/Desktop/TSV/ratings.list.tsv' DELIMITER '\t'
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的回答.我立即尝试了,但得到了:`错误:COPY的DELIMITER必须是一个单字节字符 (5认同)
  • 确定解决了我必须使用`\ tab`键入选项卡.谢谢你的帮助! (4认同)
  • 我已经尝试了上面提到的所有内容,但对我有用的是在“FROM”子句之后添加“(FORMAT CSV, DELIMITER E'\t', HEADER true)”。希望这对任何人都有帮助。 (3认同)
  • \ t - tab是默认值,因此在这种情况下,您不需要使用DELIMITER (2认同)