在 MySQL Workbench EER 图中的多个列上创建唯一约束

Posted

技术标签:

【中文标题】在 MySQL Workbench EER 图中的多个列上创建唯一约束【英文标题】:Creating UNIQUE constraint on multiple columns in MySQL Workbench EER diagram 【发布时间】:2012-07-07 18:01:54 【问题描述】:

mysql Workbench 的 EER 图中,有一个复选框可以让表中的每一列都是唯一的,不为空,主键等。

但是,我想对多个列设置一个 UNIQUE 约束。是否可以将其添加到 MySQL Workbench 的 EER 图中?

编辑:好的,我实现了唯一的复选框,创建了一个唯一的索引,而不是一个唯一的约束

【问题讨论】:

【参考方案1】:

它似乎不可用:http://bugs.mysql.com/bug.php?id=48468。似乎您可以在索引选项卡上创建多列唯一索引,但对于多列唯一约束,您需要手动运行创建命令。

【讨论】:

感谢您的回答,他们应该真正实现它。当你有多个具有多列唯一约束的表时,这是相当麻烦的。 实际上,如果您查看该线程的末尾,它会说多列唯一索引正确地强制执行唯一性约束。 是的,但问题是能够从工作台创建约束而不是索引。可以从命令行,但不能从工作台。 A rather verbose explanation about the difference【参考方案2】:

在 MySQL Workbench 的 Alter Table 对话框中:

转到索引选项卡。 双击空白行以创建新索引。 选择“UNIQUE”作为索引类型。 选中您想要唯一的列。

有一些discussion 关于这是否奇怪,因为索引与约束不同。我当然不会想到去那里看。然而,显然“唯一索引”以与唯一约束相同的方式强制唯一性,并且可以提高性能。例如,如果我尝试在使用此方法后插入一个会同时中断唯一的行,则会引发“1062 Duplicate entry”错误。

【讨论】:

创建新索引后是否应该删除其他索引?【参考方案3】:

使用最新的 MWB(我在 6.0.8),it is possible to create composite keys

如果您希望创建复合主键,您可以选择多个列并选中 PK 复选框。但是,还需要一个额外的步骤,您必须单击“索引”选项卡,然后在“索引列”面板中设置所需的主键顺序。

【讨论】:

以上是关于在 MySQL Workbench EER 图中的多个列上创建唯一约束的主要内容,如果未能解决你的问题,请参考以下文章

从 MySQL Workbench 导出 EER 图的 XML

MySQL Workbench 不保存 EER 图

MySQL Workbench 或 PHP MyAdmin EER 图在哪里?

MySQL Workbench EER Diagram Table Editing 中的 Inserts 选项卡有啥作用?

mysql工作台错误打开EER

将 phpMyAdmin 连接到 MySQL Workbench