根据COPY,我可以在导出数据时使用查询选项。从txt文件将数据加载到表中时,我可以使用查询VALUES吗?如果我有2列,我想在第一列(SentenceID)中手动插入记录,并在文本文件的第二列(Sentence)中插入数据。它是这样的:
copy foo1(Sentence) | (VALUES (2339)) from '/path/to/sentence.txt' with delimiter '*';
答案 0 :(得分:0)
根据您的说明,您尝试将COPY
查询值(仅与COPY ... TO ...
- 导出数据相关)与COPY ... FROM ...
(其中{ by definition仅接受 文件名 , 计划' 或 STDOUT 但不是它们的组合)。理论上,您可以使用 PROGRAM 选项来选择特定列(SentenceId
),但它仍然不允许您合并多个FROM
选项。换句话说,我认为只能通过两个单独的步骤来实现:
使用foo1
将数据插入Sentence
。COPY
列:
COPY foo1(Sentence) FROM '/your_path/foo1_import.txt';
根据条件手动更新foo1
。SentenceId
:
UPDATE foo1 SET SentenceId = ...
或INSERT ...
与上面提到的一样,PostgreSQL数据库中有关于填充数据的Best practices,基本上建议使用COPY
而不是INSERT
系列。