1

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

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

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

是否有另一个约束,我可以在其中指定该集合必须始终是不同的,但以前删除的唯一VARCHARs性不受限制?

4

1 回答 1

2

不,它不是那样工作的。

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

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

于 2012-07-16T23:07:02.447 回答