COPY.html
发布于 2013-06-12 08:56:38
如果要跳过预处理部分,可以将要跳过的列定义为CHAR(1),然后对COPY命令使用TRUNCATECOLUMNS参数:
CREATE TABLE t1a (
c1,
c2 CHAR(1),
c3
);
COPY t1a FROM t1 TRUNCATECOLUMNSTRUNCATECOLUMNS忽略导入期间表架构中定义的所有数据,因此该列中的所有数据将被截断为1个字符。
这只是一个黑客,建议对输入文件进行预处理,但有时只需要一个黑客。
发布于 2013-06-12 00:03:17
COPY中不直接支持详细的列映射,除非Amazon/ParAccel在其PostgreSQL叉中添加了一些不在主线中的额外内容。
在这种情况下,您通常要做的是让脚本按摩/填充数据--读取CSV,按需要转换它,然后通过PostgreSQL连接将行发送到COPY ... FROM STDIN命令。
或者,您可以将整个原始CSV转换为一个表,然后使用一个COPY将数据转换为真正的目标表。
https://stackoverflow.com/questions/17055708
复制相似问题