使用 CSV 資料更新 Postgres 表行
本指南示範如何使用 CSV 檔案中的資料有效更新 PostgreSQL 表中的特定行。 這個過程涉及幾個關鍵步驟:
首先,建立一個臨時表來儲存 CSV 資料。 COPY
指令用於將 CSV 檔案匯入到該臨時表中。 確保將 /absolute/path/to/file
替換為 CSV 檔案的實際路徑。
<code class="language-sql">CREATE TEMP TABLE tmp_data (id int, apple text, banana text); COPY tmp_data FROM '/absolute/path/to/file' (FORMAT csv);</code>
接下來,UPDATE
語句根據 tbl
欄位將主表 (tmp_data
) 與臨時表 (id
) 連接起來。這可確保僅更新相應的行。
<code class="language-sql">UPDATE tbl SET banana = tmp_data.banana FROM tmp_data WHERE tbl.id = tmp_data.id;</code>
最後,刪除臨時表,因為不再需要它。
<code class="language-sql">DROP TABLE tmp_data;</code>
此方法僅利用 CSV 中的相關資料選擇性地更新行。對於較大的表,請考慮透過為臨時表建立索引並調整臨時緩衝區設定來最佳化效能。 適當的資料庫權限對於成功執行也至關重要。
以上是如何使用 CSV 檔案中的資料更新特定的 Postgres 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!