MS Access:多字段唯一索引不起作用

时间:2018-02-14 15:11:39

标签: database ms-access indexing

我在3个字段上的唯一索引无效。我能够输入一份副本。  我的所有字段都设置为"必需"而且没有任何空虚。我已经尝试重新创建表和索引。在我的表的查询中,我的一个副本在它应该出现时没有出现。

我的疑问是:

SELECT Transactions.Transaction_ID, Transactions.Transaction_Time
FROM Transactions
WHERE (((Transactions.Transaction_Time)=#9:17:46 PM#));

但是,此查询将检索两个重复项:

SELECT Transactions.Transaction_ID, Transactions.Transaction_Time
FROM Transactions
WHERE (((Transactions.Transaction_Date)=#2/3/2018#));

就像这一样:

SELECT Transactions.Transaction_ID, Transactions.Transaction_Time
FROM Transactions
WHERE (((Transactions.Amount)=-68.47));

这里出了什么问题?

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

在日期或时间值上创建唯一索引是一件危险的事情,原因有两个:

1:时间字段始终是DateTime字段。日期不会显示。但这个日期肯定是不平等的。在这两个重复之间。日期字段也是如此:它们也是日期时间,没有显示时间。

2:Access中的DateTime字段实际上是浮点数。这意味着虽然只能显示以秒为单位的时间,但两个值之间可能存在几分之一毫秒的差异。请参阅this question上的讨论和答案。

可能这些原因中的一个或两个导致唯一约束不会跳闸。