我们希望使用多列唯一索引防止MS访问数据库中的记录重复。由于数据的发送方式(通过网络),有时会收到重复数据。数据源不发送唯一ID,因此最简单的选择是防止插入重复记录。
根据Unique Index Design Guidelines:
使用多列唯一索引 index保证每个组合 索引键中的值是唯一的。 例如,如果是唯一索引 在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')
...但我觉得索引会更好。
答案 0 :(得分:46)
事实证明,可以在MS访问数据库上创建多列唯一索引,但如果您想通过GUI执行此操作,则会有点疯狂。还有一个限制;每个索引只能使用10列。
无论如何,这是在MS访问数据库上创建多列唯一索引的方法。
答案 1 :(得分:7)
在MS Access的设计视图中打开表,选择要在唯一索引中创建的三列,然后单击工具栏上的小键。主键(set)中不能包含空值。
答案 2 :(得分:0)
我们可以将多个数据设置为唯一数据,而无需将它们设置为主键。
(注意:表中只有1个数据可以是主键)
步骤将数据值设置为唯一数据(适用于 MS ACCESS 2007 - 2010 )
真的希望这种方法可以帮助你们所有人! :)
答案 3 :(得分:0)
我遇到了 Nick Bolton 上面报告的问题。将 2 个字段 (Foo, Bar) 设置为 PK 将 Foo 设置为唯一,当我只希望 Foo + Bar 的组合是唯一的。
问题原来是我创建了与另一个表的 1:1 关系,在 Foo 上链接。我删除了关系,按照我想要的方式设置了 2-field PK,然后恢复了关系,它按预期工作。
答案 4 :(得分:-1)