如何从csv文件中导入postgresql中唯一的主键行?



我必须每天在csv格式的excel中生成相同的报告。大多数情况下,报告输出相同的信息/行(基于主键id)。如果有一个新的键行,我的工作是识别它。

我想把这些数据导入到postgresql中。但是,由于报表基本上每天都是相同的,我如何才能使每当我在数据库中导入报表时,它只导入新的唯一主键呢?

这取决于你想如何加载数据。

如果你建立插入查询,那么ON CONFLICT是一个很好的选择

INSERT ... ON CONFLICT DO NOTHING/UPDATE

如果你可以先将文件加载到临时表(temp_table)中,那么在第二步中:

insert into dest_table
select * from temp_table 
where not exists (select 1 from dest_table where dest_table.id = temp_table.id)

最新更新