![](/img/trans.png)
[英]How to change the AUTOEXTENSIBLE column to YES in table DBA_TEMP_FILES for TEMP TABLESPACE in Amazon ORACLE AWS RDS?
[英]Import CSV to table in postgreSQL ignoring duplicates - Amazon AWS/RDS
我有一個 PostgreSQL 托管在 AWS (RDS) 上。 我創建了幾個表並使用 PgAdmin4 上的“導入/導出”工具將一些 .csv 文件導入到該表中。
每個月我都需要更新表格中的數據,我將通過上傳 .csv 文件來完成。
我現在面臨的問題是:我正在嘗試從 a.csv 文件中的表中插入新數據,但我需要忽略重復值。
我在這里找到了一種方法(下面的代碼),但是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 文件繼續更新表格,始終忽略重復項。
提前致謝。
所以,我找到了解決方案。
正如 Adrian 提到的,我不得不使用 psql。
CREATE TEMP TABLE tmp_table AS SELECT * FROM table-name WITH NO DATA;
\copy tmp_table FROM 'C:/Users/Win10/folder/filename.csv' DELIMITER ',' CSV ENCODING 'UTF8' ;
INSERT INTO "table-name" SELECT * FROM tmp_table ON CONFLICT DO NOTHING;
DROP TABLE tmp_table;
由於我使用的是 psql,因此有必要使用命令\copy
而不是COPY
。 此外,每個命令都必須以“;”結尾並且有必要在最后刪除tmp_table
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.