我需要将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
答案 0 :(得分:0)
多次发出命令是加载多个文件的正确方法。
大小增加是由于使用char(200)
引起的,因为它填充了每行200个字符。您应该使用varchar(200)
,因为它将存储较短的字符串而不填充它,如果您不需要强制执行大小限制,则应使用事件text
。请参阅doc