我在 MS Access 2013 中创建了一个表,其中只有一列“长文本”类型(之前称为备忘录),并将其作为表的主键。我存储了一个包含 255 个以上字符的长字符串,然后我尝试存储另一个字符串,其前 255 个字符与之前存储的字符串相同,但前 255 个字符之后的所有其他字符都不同,并且 MS Access 给出了“重复数据”错误。在新字符串中,我使用不同的字符组合更改了第 255 位之后的字符,但都给出了错误。但是当我在第 255 个位置之前更改任何字符时,它不会给出任何错误。因此,我得出结论,MS Access 仅检查“长文本”数据类型的前 255 个字符以检查该列中的重复项。是这样吗?还有什么理由?
存储 256 个字符的字符串: Lorem Ipsumiss 印刷和排版行业的虚拟文本 Lorem Ipsum 自 1500 年代以来一直是该行业的标准虚拟文本,当时一位未知的印刷商使用了打字机并进行了编辑以制作类型样本书
字符串出现错误:Lorem Ipsumiss 暗示印刷和排版行业的虚拟文本 Lorem Ipsum 自 1500 年代以来一直是行业标准的虚拟文本,当时一位未知的印刷商进行了打字并进行了编辑以制作类型样本书它不仅幸存了五个世纪,而且还幸存了 1
字符串给出错误:Lorem Ipsumiss 暗示印刷和排版行业的虚拟文本 Lorem Ipsum 自 1500 年代以来一直是行业标准的虚拟文本,当时一位未知的印刷商进行了打字机并进行了编辑以制作类型样本书它不仅幸存了五个世纪,而且还幸存了下来2
字符串出现错误:Lorem Ipsumiss 暗示印刷和排版行业的虚拟文本 Lorem Ipsum 自 1500 年代以来一直是行业标准的虚拟文本,当时一位未知的印刷商进行了打字并进行了编辑以制作类型样本书,它不仅存在五个世纪,而且还幸存了 123
不给出错误:Lorem Ipsumiss 暗示印刷和排版行业的虚拟文本 Lorem Ipsum 自 1500 年代以来一直是该行业的标准虚拟文本,当时一位未知的印刷商进行了打字并进行了编辑以制作类型样本书它不仅存在五个世纪,而且还存在于 lepintoelec1
不给出错误:Lorem Ipsum 暗示印刷和排版行业的虚拟文本 Lorem Ipsum 自 1500 年代以来一直是该行业的标准虚拟文本,当时一位未知的印刷商在打字机上进行了打字并进行编辑以制作类型样本书,它不仅存在五个世纪,而且还存在于 lepintoelec2
不给出错误:Lorem Ipsumiss 暗示印刷和排版行业的虚拟文本 Lorem Ipsum 自 1500 年代以来一直是行业标准的虚拟文本,当时一位未知的印刷商在打字机上进行了打字并进行编辑以制作类型样本书,它不仅存在五个世纪,而且还存在于 lepintoelec3
请注意上述示例最后几个字符的不同。第一个存储的字符串有 256 个字符。即使该列不是主键,如果在该列的表设计中将“Indexed: Yes (no-duplicates) allowed”值设置为 true,问题仍然存在。