COPY postgres中的查询选项

时间:2015-11-06 19:12:03

标签: sql postgresql

根据COPY,我可以在导出数据时使用查询选项。从txt文件将数据加载到表中时,我可以使用查询VALUES吗?如果我有2列,我想在第一列(SentenceID)中手动插入记录,并在文本文件的第二列(Sentence)中插入数据。它是这样的:

    copy foo1(Sentence) | (VALUES (2339)) from '/path/to/sentence.txt' with delimiter '*';

1 个答案:

答案 0 :(得分:0)

根据您的说明,您尝试将COPY查询(仅与COPY ... TO ... - 导出数据相关)与COPY ... FROM ...(其中{ by definition仅接受 文件名 计划' STDOUT 但不是它们的组合)。理论上,您可以使用 PROGRAM 选项来选择特定列(SentenceId),但它仍然不允许您合并多个FROM选项。换句话说,我认为只能通过两个单独的步骤来实现:

  • 使用foo1将数据插入SentenceCOPY列:

    COPY foo1(Sentence) FROM '/your_path/foo1_import.txt';

  • 根据条件手动更新foo1SentenceId

    UPDATE foo1 SET SentenceId = ...INSERT ...

与上面提到的一样,PostgreSQL数据库中有关于填充数据的Best practices,基本上建议使用COPY而不是INSERT系列。