【问题标题】:Skipping primary key conflicts with SQL copy跳过与 SQL 副本的主键冲突
【发布时间】:2008-10-19 18:29:23
【问题描述】:

我收集了大量原始数据(大约 3 亿行),其中包含大约 10% 的复制数据。我需要将数据存入数据库。为了性能,我尝试使用 SQL 副本。问题是当我提交数据时,主键异常会阻止任何数据被处理。我可以更改主键的行为,以便简单地忽略或替换冲突数据吗?我真的不在乎这两种方式 - 我只需要每个数据的唯一副本。

【问题讨论】:

  • 我认为您的意思是“复制”而不是“复制”。

标签: sql database primary-key


【解决方案1】:

我认为最好的办法是删除约束,加载数据,然后清理并重新应用约束。

【讨论】:

    【解决方案2】:

    这就是我正在考虑做的事情,但担心在 3 亿个条目数据库中摆脱 3000 万个随机放置的行的性能。重复数据也有空间关系,这就是为什么我想在加载数据时尝试解决问题,而不是在加载完所有数据之后。

    【讨论】:

      【解决方案3】:

      使用 select 语句准确选择要插入的数据,不要重复。

      使用它作为 CREATE TABLE XYZ AS SELECT * FROM (query-just-non-dupes) 的基础

      您可以查看ASKTOM 关于如何选择非重复行的想法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多