125 我有一个存储产品代码的字段。该代码是唯一的,但是某些产品根本没有代码。我无法发明代码,因为它们是提供商代码。 在MySQL中这种约束可能吗? 我是一个存储过程和触发器的菜鸟,所以如果解决方案涉及其中之一,请耐心等待。 更新:列不为空。这就是为什么我无法做到这一点。 mysql database-design constraints — 崩解器 source MySQL的 — 阿米尔·阿里·阿克巴里 @AmirAliAkbari这两个如何相互链接为“可能的重复”,这很有趣。不过,这是一个较旧的。:) — Pijusn
182 是的,您可以这样做。参见MySQL参考(版本5.5)。 UNIQUE索引会创建约束,以使索引中的所有值都必须不同。如果您尝试添加键值与现有行匹配的新行,则会发生错误。对于所有引擎,UNIQUE索引允许可以包含NULL的列使用多个NULL值。 — 埃里克 source 8 谢谢。我必须使其变为可为空 — Disintegrator 在Django模型中有这个问题。使它可以为空。谢谢 — Shrey
8 MySQL仍然允许多行在NULL唯一列中具有值。 — cg。 source 谢谢。我必须使其变为可为空 — Disintegrator @MianAnjum粗体显示:CREATE TABLE table(keyint(11)NOT NULL AUTO_INCREMENT,fieldtinyint(1)DEFAULT NULL) — Paul Nowak