gpt4 book ai didi

sql - 在 postgresql 中忽略 'copy from' 期间的重复键

转载 作者:行者123 更新时间:2023-11-29 11:06:00 32 4
gpt4 key购买 nike

我必须将大量数据从文件转储到 PostgreSQL 表中。我知道它不支持在 MySql 中完成的“忽略”“替换”等。网络上几乎所有关于此的帖子都建议将数据转储到临时表,然后执行“插入...选择...不存在...”。

这在文件数据本身包含重复主键的情况下无济于事。有没有人知道如何在 PostgreSQL 中处理这个问题?

附言如果有帮助的话,我正在从 Java 程序中执行此操作

最佳答案

使用与您描述的相同的方法,但在加载到主表之前,DELETE(或组,或修改...)复制临时表中的 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

关于sql - 在 postgresql 中忽略 'copy from' 期间的重复键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13947327/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com