【发布时间】:2019-04-06 17:06:22
【问题描述】:
我有 4 个表,从 1000 万行到 2500 万行不等。我首先创建了一个表,其中一个表具有 serial_no 作为主键,其余的具有两列的组合作为唯一约束。
然后我向它们插入了大的 csv 文件,这很成功。然后我使用 upsert 技术添加了更多记录,这也很顺利。但是当我随机选择特定的序列号时,我注意到其中一些有重复的行。以确保我随后按 serial_no 分组并按 count(*) > 1 过滤,果然,即使有约束,许多记录也会重复。这里可能是什么问题?
我读过一篇以前的帖子,上面说旧版本的 Postgres(即 9.2 和更早版本)有一个错误,但据说已经修复。我使用的是版本 10。此外,所有表在各自的唯一约束上都有重复的记录。
【问题讨论】:
-
您必须展示您的
CREATE TABLE语句和一个您认为违反这些限制的数据示例。 -
我发现了问题。我没有手动创建这些表,而是使用 pgAdmin4 接口,天真地选择从另一个表继承,以为它只会复制它。
标签: sql postgresql