【发布时间】:2021-10-24 04:11:41
【问题描述】:
我有一个托管在 AWS (RDS) 上的 PostgreSQL。我创建了几个表,并使用 PgAdmin4 上的“导入/导出”工具将一些 .csv 文件导入到这些表中。
我需要每月更新表中的数据,我会通过上传 .csv 文件来完成。
我现在面临的问题是:我正在尝试从 .csv 文件在表中插入新数据,但我需要忽略重复值。
我找到了一种方法来做到这一点here(下面的代码)但是copy 命令在 PgAdmin 上不起作用。仅当我使用导入/导出工具时,复制才有效。
CREATE TEMP TABLE tmp_table
ON COMMIT DROP
AS
SELECT *
FROM indice-id-cnpj
WITH NO DATA;
COPY tmp_table FROM 'C:/Users/Win10/Desktop/Dados/ID-CNPJ.csv';
INSERT INTO indice-id-cnpj
SELECT *
FROM tmp_table
ON CONFLICT DO NOTHING
这是我对 PostgreSQL 的第一次体验(除了 uni 中的一个主题)。我可以通过使用 excel 并做一些手动工作来解决这个问题,但我正在寻找一个“长期”解决方案,关于如何使用 .csv 文件不断更新表格,始终忽略重复项。
提前致谢。
【问题讨论】:
-
不要使用 pgAdmin 使用 psql 代替。这是一个更好的启动体验。
-
应该添加,如果你使用
psql,你将需要使用\copy。
标签: postgresql csv duplicates amazon-rds pgadmin