我有一个VARCHAR
字段(在MySQL数据库的表中),我需要每个条目与整个集合中相同字段的任何其他行相比是唯一的。
但是,在我删除其中一个唯一字符串后,我希望能够插入和更新该字段的其他记录,以便它们现在具有以前使用的唯一值。
问题是Unique约束似乎记住了所有“已删除的唯一字符串”,并且它不允许我更新或添加以前使用过的字符串(但现在已被删除)。
是否有另一个约束,我可以指定该集必须始终是不同的,但之前删除的唯一VARCHARs
不受约束?
答案 0 :(得分:2)
不,它不会那样。
一旦从表中删除了一个值,即使表上有唯一约束,也可以再次插入它。
一个潜在的问题是如果你使用软删除 - 即通过将is_deleted
字段设置为1来将行标记为已删除。如果是这种情况,那么你是正确的,软删除值将阻止唯一按预期工作的约束。但这似乎并非如此。