具有超过 10 个字段的 MS Access 唯一约束

MS Access Unique Constraint with more than 10 fields

我知道这是 Access 的限制,但有谁知道一个好的解决方法可以让我在 table 有 30 个字段但我不想要的情况下避免重复记录这 30 个字段的任何重复组合?

我基本上是定期批量加载财务数据,我只想在特定项目 ID 的某些信息自上次加载以来发生变化时添加记录。当我 运行 添加新记录的追加查询时,我希望使用约束来阻止插入,但试图找出另一种解决方案。

要仅插入 non-duplicating 条记录,您需要使用 WHERE NOT EXISTS 子查询过滤掉查询中的重复记录,如下所示:

INSERT INTO tTgt (project_id, field1, ..., field30)
SELECT project_id, field1, ..., field30
FROM tSrc
WHERE NOT EXISTS (
    SELECT project_id 
    FROM tTgt
    WHERE tTgt.project_id = tSrc.project_id
      AND tTgt.field1 = tSrc.field1
      ...
      AND tTgt.field30 = tSrc.field30
    )

子查询将相当冗长,但最终与索引必须完成的工作相同。