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

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

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

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

【问题讨论】:

    标签: mysql mysql-workbench unique-constraint multiple-columns workbench


    【解决方案1】:

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

    【讨论】:

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

    在 MySQL Workbench 的 Alter Table 对话框中:

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

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

    【讨论】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多