2015-11-06 66 views
0

根據COPY,我可以在導出數據時使用查詢選項。從txt文件加載數據到表格時,我可以使用查詢VALUES嗎?如果我有2列,並且我想在第一列(SentenceID)中手動插入記錄,並在文本文件的第二列(句子)中插入數據。難道是這樣的:COPY中的查詢選項postgres

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

回答

0

根據您的描述,您試圖COPY查詢(這是相關僅COPY ... TO ... - 出口數據)結合了COPY ... FROM ...(其中by definition並只接受PROGRAM '命令'STDOUT但不是他們的組合)。從理論上講,您可以使用程序選項來選擇特定列(SentenceId),但它仍然不允許您合併幾個FROM選項。換句話說,我會說,它可以用2個獨立的步驟才能實現:

  • 將數據插入foo1Sentence柱上使用COPY

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

  • 手動更新foo1SentenceId基於標準:

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

加上什麼上面所提到的,有Best practices關於PostgreSQL數據庫,基本上推薦使用COPY而不是一系列INSERT的填充數據。

+1

謝謝。所以如果我得到正確的人不能使用查詢選項進行導入。手動更新> 300個條目將會很困難。 – Masyaf

+0

您可以使用它進行導入,而不是一步到位。正如我上面提到的,你需要生成文件以便導入 –