我知道这是Access的限制,但有谁知道一个好的解决方法,可以让我避免重复记录在我的表有30个字段的情况下,我不不想要这30个字段的任何重复组合?MS访问超过10个字段的唯一约束
我基本上是批量加载财务数据,我只想添加记录,如果某个特定项目ID的某些信息在上次加载后发生了变化。当我运行添加新记录的追加查询时,我希望使用约束来阻止插入,但试图找出另一个解决方案。
我知道这是Access的限制,但有谁知道一个好的解决方法,可以让我避免重复记录在我的表有30个字段的情况下,我不不想要这30个字段的任何重复组合?MS访问超过10个字段的唯一约束
我基本上是批量加载财务数据,我只想添加记录,如果某个特定项目ID的某些信息在上次加载后发生了变化。当我运行添加新记录的追加查询时,我希望使用约束来阻止插入,但试图找出另一个解决方案。
要只插入非重复的记录,您需要过滤掉在查询中的重复者与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
)
子查询将是相当漫长的,但到底这与索引必须做的工作是一样的。
项目ID是一个外键,因为项目可以在该表上具有其他属性的各种组合(主要也是外键),因此不是唯一的。但是,它出现在桌面上,数据来自Access登台表。 – Scott