如果MySQL工作台中的另一个字段是'PK','UQ'如何运行?

时间:2012-05-02 16:03:07

标签: mysql-workbench

我正在使用MySQL的工作台为数据库创建模式。我的一个表包含personId的字段,以及一个国家ID号(如果有的话)(他们可能没有)。

personId字段是整个模式中用作唯一标识符的字段,因此我为其选中了“PK”和“NN”选项。现在,我希望能够确保系统不允许具有不同personId的新插入,如果它具有与已存在的实体相同的国家ID。但是,国家ID不是主键,实际上可能是空的。

我一直在关注'UQ'选项,但我找不到有关其实际功能的明确文档。我担心它会在我真正希望它们被用户插入或留空时自动创建数字。有谁知道吗?

1 个答案:

答案 0 :(得分:2)

UQ将字段标记为unique key。除了NULL之外,这会强制给定字段中的唯一性。这正是我在国家身份领域所需要的。

来自http://dev.mysql.com/doc/refman/5.5/en/create-table.html

  

UNIQUE索引创建一个约束,使索引中的所有值必须是不同的。如果您尝试添加具有与现有行匹配的键值的新行,则会发生错误。对于所有引擎,UNIQUE索引允许可以包含NULL的列的多个NULL值。