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