在MySQL中允许空值的唯一约束 [英] Unique constraint that allows empty values in MySQL
问题描述
我有一个字段用于存储产品代码。代码是唯一的,但有些产品根本没有代码。
I have a field that stores product codes. The codes are unique, but some products simply doesn't have a code. I can't invent codes because those are providers codes.
这种类型的约束在MySQL中是否可能?
Is this kind of constraint possible in MySQL?
我是一个存储过程和触发器的noob,所以如果解决方案涉及其中之一,请耐心等待。
I'm a noob with stored procedures and triggers, so if the solution involves one of these, please be patient.
更新:
该列不是空值。这是为什么我无法做到这一点。
Update: The column is NOT Null. That's why I was unable to do this.
推荐答案
是的,你可以这样做。请参见 MySQL参考(版本5.5)。 / p>
Yes, you can do this. See the MySQL reference (version 5.5).
UNIQUE索引创建一个约束,使得索引中的所有值必须是不同的。如果您尝试添加具有与现有行匹配的键值的新行,则会出现错误。对于所有引擎,UNIQUE索引允许可以包含NULL的列的多个NULL值。
A UNIQUE index creates a constraint such that all values in the index must be distinct. An error occurs if you try to add a new row with a key value that matches an existing row. For all engines, a UNIQUE index allows multiple NULL values for columns that can contain NULL.
这篇关于在MySQL中允许空值的唯一约束的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!