将6 .csv文件合并到1个表

时间:2018-05-08 21:04:57

标签: postgresql

我需要将6个.csv文件合并到一个表中(然后是1个.csv)。表只有一列(电子邮件)。我很陌生......

目前我正在这样做:

CREATE TABLE tablename (
email char(200)

);

然后,我一个接一个地做这个,由于某种原因而不是40mb文件,我得到500mb文件。

COPY tablename(email) from 'E:\WORK\FXJohn1.csv' DELIMITER ',' CSV HEADER

我再做5次

COPY tablename(email) from 'E:\WORK\FXJohn2.csv' DELIMITER ',' CSV HEADER
COPY tablename(email) from 'E:\WORK\FXJohn3.csv' DELIMITER ',' CSV HEADER
COPY tablename(email) from 'E:\WORK\FXJohn4.csv' DELIMITER ',' CSV HEADER
COPY tablename(email) from 'E:\WORK\FXJohn5.csv' DELIMITER ',' CSV HEADER
COPY tablename(email) from 'E:\WORK\FXJohn6.csv' DELIMITER ',' CSV HEADER

1 个答案:

答案 0 :(得分:0)

多次发出命令是加载多个文件的正确方法。

大小增加是由于使用char(200)引起的,因为它填充了每行200个字符。您应该使用varchar(200),因为它将存储较短的字符串而不填充它,如果您不需要强制执行大小限制,则应使用事件text。请参阅doc