2010-03-11 27 views
1

这是我的问题: 关键“idx_SR_u_Identity_FingerPrintProfile”是为了约束字段“c_r_Fingerprint”和“c_r_Profile”是唯一的。如何纠正唯一的键不允许重复条目

看来我做错了什么,因为表中的所有4个条目对这两个字段具有相同的值。如果两个记录具有相同的指纹或相同的配置文件,但不是两个都可以。

我该如何正确指定此唯一键,以便这样的副本不被允许?

alt text http://www.Rigel222.Com/Images/Unique.jpg

回答

0

我觉得你的关键是正确的,但MySQL不会把它应用到NULL值。 MySQL Docs for CREATE TABLE状态:

一个UNIQUE索引允许多个NULL值可以包含NULL的列。

虽然像(1,2)项只能出现一次,如(1,NULL)项可以出现多次,则它们不被认为是因为NULL的副本。

根据您的用例,您可能会禁止NULL这两列来规避问题。

+0

有什么办法让MySQL把这些行当作重复对象吗?在我的方案中,即使某些字段为'NULL',行也是相同的,因此允许重复的MySQL确实是一个大问题。 – Hubro 2013-03-14 05:16:18