2011-04-20 95 views
3

使用Access 2007.我有一个字段,我想只有唯一的非空值,但允许多个空值。我尝试设置唯一索引:是和忽略空值:是的。我可以手动输入具有此字段空白的记录,但是当我尝试使用SQL插入对此字段具有空白值的记录时,例如如何在Access索引中允许重复的空白?

insert into mytable (field1, blanksOK, field3) values ("xyz","","123") 

然后访问给我一个错误信息:“...... 1个结果表中没有添加由于键冲突......”

更改忽略来自空值是为No似乎没有任何区别。

如何使复制空白容许,但防止重复的非空白?

+5

为什么不使用'NULL'而不是''''为你的“空白”值? – 2011-04-20 15:56:56

+0

谢谢,解决了!如果你发布这个答案,我会接受它。 – sigil 2011-04-20 16:00:36

回答

1

我是在印象之下空白不适用于Access中的索引键,因此错误。根据定义,密钥必须有非空白条目。空值是可以的,因为null是一个indexabe值。

+0

是的,但是它们在非关键指标中是可以的(如果属性设置正确)。 – RolandTumble 2011-04-20 17:57:12

+0

您不能在允许空值的索引上强制实际唯一性,因为没有两个空值是相同的值。唯一的解决方法是默认值,所以空值永远不会被允许。 – 2011-04-26 02:47:30