Creating UNIQUE constraint on multiple columns in

2019-03-09 07:53发布

In MySQL Workbench's EER diagram, there is a checkbox to make each column in a table unique, not null, primary key etc.

However, I would like to have a UNIQUE constraint on multiple columns. Is it possible to add it in in MySQL Workbench's EER diagram?

EDIT: Ok, I realised the unique checkbox, creates a UNIQUE INDEX, and not a UNIQUE CONSTRAINT

3条回答
闹够了就滚
2楼-- · 2019-03-09 08:12

With latest MWB (I'm on 6.0.8), it is possible to create composite keys

If you wish to create a composite primary key you can select multiple columns and check the PK check box. However, there is an additional step that is required, you must click the Indexes tab, then in the Index Columns panel you must set the desired order of the primary keys.

查看更多
疯言疯语
3楼-- · 2019-03-09 08:19

it does not seem to be available : http://bugs.mysql.com/bug.php?id=48468 . it seems what you can is to create a multi column unique index on the indexes tab but for a multi column unique constraint, you need to run the creation command manually.

查看更多
疯言疯语
4楼-- · 2019-03-09 08:24

In the Alter Table dialog of MySQL Workbench:

  • Go to Indexes tab.
  • Double-click on a blank row to create a new index.
  • Choose 'UNIQUE' as the index type.
  • Check the columns that you want to be unique together.

There's some discussion as to whether this is weird, since an index is not the same as a constraint. I certainly wouldn't have thought to look there. However, apparently the `unique index' enforces uniqueness in the same way as a unique constraint, and may improve performance. For example, if I try to insert a row that would break unique together after using this method, it throws an '1062 Duplicate entry' error.

查看更多
登录 后发表回答