我在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));
这里出了什么问题?
答案 0 :(得分:0)
在日期或时间值上创建唯一索引是一件危险的事情,原因有两个:
1:时间字段始终是DateTime字段。日期不会显示。但这个日期肯定是不平等的。在这两个重复之间。日期字段也是如此:它们也是日期时间,没有显示时间。
2:Access中的DateTime字段实际上是浮点数。这意味着虽然只能显示以秒为单位的时间,但两个值之间可能存在几分之一毫秒的差异。请参阅this question上的讨论和答案。
可能这些原因中的一个或两个导致唯一约束不会跳闸。