使用 CSV 資料更新 Postgres 行:逐步指南
本指南詳細介紹如何使用來自 CSV 檔案的資料更新現有的 Postgres 行。 這個過程涉及幾個關鍵步驟:
1。建立臨時表
首先在 Postgres 資料庫中建立一個臨時表。 此表將用作 CSV 資料的暫存區域。 表模式必須反映目標表的結構。例如:
<code class="language-sql">CREATE TEMP TABLE tmp_x (id int, banana text, apple text);</code>
2。導入 CSV 資料
使用COPY
指令將CSV檔案的內容載入到臨時表中。 記得將 /absolute/path/to/file
替換為實際檔案路徑:
<code class="language-sql">COPY tmp_x FROM '/absolute/path/to/file' (FORMAT csv);</code>
3。執行更新
利用臨時表中的數據,執行UPDATE
語句修改目標表。此範例根據符合的 banana
值更新 id
列:
<code class="language-sql">UPDATE tbl SET banana = tmp_x.banana FROM tmp_x WHERE tbl.id = tmp_x.id;</code>
4。刪除臨時表
更新完成後,移除臨時表以回收資源:
<code class="language-sql">DROP TABLE tmp_x;</code>
重要提示:
COPY
更新資料通常需要超級使用者權限或適當分配的角色(尤其是在 Postgres 10 及更高版本中)。 copy
用戶端中的 psql
元命令為缺乏超級使用者權限的使用者提供了替代方案。 temp_buffers
並對臨時表建立索引。 此方法提供了一種使用 CSV 檔案中的資料更新特定 Postgres 行的有效方法。
以上是如何使用 CSV 檔案中的資料更新 Postgres 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!