MySQL - 独特但不是那么独特请

时间:2012-07-16 23:05:06

标签: mysql unique-constraint

我有一个VARCHAR字段(在MySQL数据库的表中),我需要每个条目与整个集合中相同字段的任何其他行相比是唯一的。

但是,在我删除其中一个唯一字符串后,我希望能够插入和更新该字段的其他记录,以便它们现在具有以前使用的唯一值。

问题是Unique约束似乎记住了所有“已删除的唯一字符串”,并且它不允许我更新或添加以前使用过的字符串(但现在已被删除)。

是否有另一个约束,我可以指定该集必须始终是不同的,但之前删除的唯一VARCHARs不受约束?

1 个答案:

答案 0 :(得分:2)

不,它不会那样。

一旦从表中删除了一个值,即使表上有唯一约束,也可以再次插入它。

一个潜在的问题是如果你使用软删除 - 即通过将is_deleted字段设置为1来将行标记为已删除。如果是这种情况,那么你是正确的,软删除值将阻止唯一按预期工作的约束。但这似乎并非如此。