根据条件将CSV文件中的数据导入到postgres数据库中

问题描述 投票:0回答:1

请问有没有办法根据条件将CSV文件中的数据导出到postgress数据库?

我所说的条件是指 postgres 数据库中有两个表的情况。在向第二个表添加行之前,我必须进行验证。我需要检查文件中的参数是否与第一个表中的值匹配,并且只有当该参数匹配时,我才需要将该参数放入第二个表中。

比如我有两张表“服装品牌”和“服装尺码”。需要导出到 postgres 表的 CSV 文件包含服装品牌及其尺寸。我需要在 postgres 中已创建的表中进行验证,如果 csv 文件中的服装品牌已存在于表中,那么我需要添加或修改表“服装尺码”。

我尝试在互联网上搜索,但找到了如何简单地将完整表格从 CSV 文件导入到 postgres 数据库的示例。 有什么方法可以将 csv 文件导入到 postgresql 而不从头开始创建新表? 如何将 CSV 文件数据导入 PostgreSQL 表 https://www.youtube.com/watch?v=KKjcwBUxZXY 但我找不到可以先检查现有表数据,只有在验证成功后才能插入特定行的示例。

postgresql csv import import-from-excel
1个回答
0
投票

最简单的解决方案是使用

COPY
命令将所有数据导入到临时表中,然后使用标准 SQL 查询过滤并仅插入特定行。它看起来像这样:

create table temp_sizes (...);
copy temp_sizes from 'sizes.csv' format CSV;
insert into sizes from temp_sizes where brand_name in (select name from brands);
drop table temp_sizes;

或者,您可以使用任何通用编程语言来解析 CSV 文件并根据您的条件发出

INSERT
命令。

© www.soinside.com 2019 - 2024. All rights reserved.