根據COPY,我可以在導出數據時使用查詢選項。從txt文件加載數據到表格時,我可以使用查詢VALUES嗎?如果我有2列,並且我想在第一列(SentenceID)中手動插入記錄,並在文本文件的第二列(句子)中插入數據。難道是這樣的:COPY中的查詢選項postgres
copy foo1(Sentence) | (VALUES (2339)) from '/path/to/sentence.txt' with delimiter '*';
根據COPY,我可以在導出數據時使用查詢選項。從txt文件加載數據到表格時,我可以使用查詢VALUES嗎?如果我有2列,並且我想在第一列(SentenceID)中手動插入記錄,並在文本文件的第二列(句子)中插入數據。難道是這樣的:COPY中的查詢選項postgres
copy foo1(Sentence) | (VALUES (2339)) from '/path/to/sentence.txt' with delimiter '*';
根據您的描述,您試圖COPY
查詢值(這是相關僅COPY ... TO ...
- 出口數據)結合了COPY ... FROM ...
(其中by definition並只接受名,PROGRAM '命令'或STDOUT但不是他們的組合)。從理論上講,您可以使用程序選項來選擇特定列(SentenceId
),但它仍然不允許您合併幾個FROM
選項。換句話說,我會說,它可以用2個獨立的步驟才能實現:
將數據插入foo1
。 Sentence
柱上使用COPY
:
COPY foo1(Sentence) FROM '/your_path/foo1_import.txt';
手動更新foo1
。 SentenceId
基於標準:
UPDATE foo1 SET SentenceId = ...
OR INSERT ...
加上什麼上面所提到的,有Best practices關於PostgreSQL數據庫,基本上推薦使用COPY
而不是一系列INSERT
的填充數據。
謝謝。所以如果我得到正確的人不能使用查詢選項進行導入。手動更新> 300個條目將會很困難。 – Masyaf
您可以使用它進行導入,而不是一步到位。正如我上面提到的,你需要生成文件以便導入 –