我们可以在MS访问数据库上创建多列唯一索引吗?

时间:2010-01-24 16:11:56

标签: database-design ms-access

我们希望使用多列唯一索引防止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')

...但我觉得索引会更好。

5 个答案:

答案 0 :(得分:46)

事实证明,可以在MS访问数据库上创建多列唯一索引,但如果您想通过GUI执行此操作,则会有点疯狂。还有一个限制;每个索引只能使用10列。

无论如何,这是在MS访问数据库上创建多列唯一索引的方法。

  1. 在设计模式下打开表格,设计,选择索引
  2. 创建新行并在索引名称单元格中输入值
  3. 从下拉菜单中选择第一列。
  4. 添加新行,将“索引名称”单元格留空
  5. 选择第二列,依此类推。
  6. 这是它应该是什么样子:

    multicolumn index in MS access

答案 1 :(得分:7)

在MS Access的设计视图中打开表,选择要在唯一索引中创建的三列,然后单击工具栏上的小键。主键(set)中不能包含空值。

答案 2 :(得分:0)

我们可以将多个数据设置为唯一数据,而无需将它们设置为主键。

注意:表中只有1个数据可以是主键)

步骤将数据值设置为唯一数据(适用于 MS ACCESS 2007 - 2010

  1. 设计视图
  2. 中打开所选表格
  3. 单击(突出显示)要设置为唯一的特定列/属性
  4. 在表格底部,您会看到该特定列的“索引属性
  5. 找到“已编入索引”列,当前索引文本框中的数据为“否”,通过单击文本框末尾更改数据,选择“是(无重复)
  6. 真的希望这种方法可以帮助你们所有人! :)

答案 3 :(得分:0)

我遇到了 Nick Bolton 上面报告的问题。将 2 个字段 (Foo, Bar) 设置为 PK 将 Foo 设置为唯一,当我只希望 Foo + Bar 的组合是唯一的。

问题原来是我创建了与另一个表的 1:1 关系,在 Foo 上链接。我删除了关系,按照我想要的方式设置了 2-field PK,然后恢复了关系,它按预期工作。

答案 4 :(得分:-1)

Unique key

它将作为Ms Access 2007/2010中的唯一键