【发布时间】:2011-01-08 19:41:08
【问题描述】:
我们希望使用多列唯一索引来防止我们的 MS 访问数据库中的记录重复。由于数据的发送方式(通过网络),有时会收到重复的数据。数据源不发送唯一 ID,因此最简单的选择是防止插入重复记录。
根据Unique Index Design Guidelines:
使用多列唯一索引, 索引保证每个组合 索引键中的值是唯一的。 例如,如果唯一索引是 在 LastName 的组合上创建, FirstName 和 MiddleName 列,无 表中的两行可能有 这些值的相同组合 列。
这是针对 SQL 2005 的,所以我不确定是否可以使用 MS 访问。
我想另一种选择可能是使用查询(伪代码):
insert into foobar (a, b, c) values ('x', 'y', 'z')
where (a <> 'x') and (b <> 'y') and (c <> 'z')
...但我觉得索引会更好。
【问题讨论】:
-
为什么不给有问题的表一个唯一索引?我不明白这与 C++ 有什么关系,顺便说一句。
-
否 - 任何索引都可以在多个列上创建 - 如果不是这种情况,索引将毫无用处。这就是为什么我说你需要一些帮助 - 你似乎不了解数据库设计的基础知识。
-
Neil,您能解释一下如何使用 MS 访问在多个列上创建索引吗?这会很有帮助。
-
啊哈,我相信我要搜索的术语是“多列唯一索引”。我以前从未使用过这些......也许这个答案会有所帮助:stackoverflow.com/questions/179085/…
-
问题已更新 - 希望这应该更清楚我所追求的。