前端之家收集整理的这篇文章主要介绍了
在postgresql中的’copy from’期间忽略重复的键,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须将大量数据从
文件转储到Postgre
sql表。我知道它
不支持在
MysqL中完成’忽略”替换’等等。几乎所有关于这个在网站上的帖子都建议将数据转储到临时表中,然后做一个“插入…选择…不存在…”。
这在一种情况下不会有帮助,其中文件数据本身包含重复的主键。
任何身体有一个想法如何处理这在Postgresql?
美国我正在从java程序,如果它有帮助
使用与您描述的相同的
方法,但在加载到主表之前,在临时表中
删除(或组或
修改…)重复PK。
就像是:
CREATE TEMP TABLE tmp_table
ON COMMIT DROP
AS
SELECT *
FROM main_table
WITH NO DATA;
COPY tmp_table FROM 'full/file/name/here';
INSERT INTO main_table
SELECT DISTINCT ON (PK_field) *
FROM tmp_table
ORDER BY (some_fields)
详细信息:CREATE TABLE AS
,COPY
,DISTINCT ON
原文链接:https://www.f2er.com/postgresql/193224.html