如何从Mysql Workbench创建CHECK约束

时间:2015-07-19 17:52:08

标签: mysql mysql-workbench check-constraints

我想添加一个检查约束,例如

ALTER TABLE fruit
ADD CONSTRAINT check_colour CHECK(color IN ('black','white', 'green'))

我可以在命令行中执行此操作,但是,我找不到在Mysql Workbench中添加检查约束的选项。我只能找到触发器,但不能检查约束。

1 个答案:

答案 0 :(得分:2)

MySQL允许check constraint的语法,但不对它做任何事情。因此,没有检查。

标准答案是使用触发器来检查值。但是,在您的情况下,我认为您应该有一个Colors表和一个外键约束:

create table Colours (
    ColourId int not null auto_increment primary key,
    Colour varchar(255)
);

ALTER TABLE fruits
    ADD COLUMN ColourId FOREIGN KEY (ColourID) REFERENCES Colours(ColourId);

这将确保仅允许有效颜色。如果在创建表格时执行此操作,则可以添加NOT NULL