使用 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中文网其他相关文章!