我正在尝试在Access中的表上创建唯一的多列索引。我将在索引中使用的几个字段是长整数。某些记录中的这些字段可能为空白。我知道我不能允许实际的NULL,因为那时我不能拥有唯一的记录,例如如果我尝试按如下方式构建表:
Field1 (text),Field2 (integer),Field3 (text)
1:"a",56,"c"
2:"x",NULL,"f"
3:"x",NULL,"f"
然后允许第3行(我不想要),因为NULL实际上并不是“相等”。
我看到了一个解决方案,他们在设计视图中设置了以下内容:
"Required"="Yes"
"Allow Zero Length"="yes"
"Default value"=""
但这不会有帮助,因为整数不能设置为“”。
那么,在这种情况下创建唯一索引的想法是什么?
答案 0 :(得分:3)
我正在使用一般数据库理论,但是Acess可以打破模具。理论使得NULL无法按照您的意愿执行,因为DB取空为主要意味着“放弃评估”。这使您可以设置一个默认值,例如0,-1或最小int,但这会留下虚假,无意义的数据 - 这是一件非常糟糕的事情。
您是否可以添加使用整数的字符串表示形式填充的代理字段(例如字符串类型)?不确定Access,但触发器或计算列是执行此操作的两个常规DBMS选项。