【问题标题】:How to create a CHECK constraint from Mysql Workbench [duplicate]如何从 Mysql Workbench 创建 CHECK 约束
【发布时间】:2015-10-08 20:20:49
【问题描述】:

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

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

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

【问题讨论】:

    标签: mysql mysql-workbench check-constraints


    【解决方案1】:

    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

    【讨论】:

    • 为什么是触发器?在这种情况下你不能只使用枚举吗?
    • 一个触发器,因为 OP 提到了一个检查约束,这是实现它的唯一方法。另一种实现是使用枚举。
    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    • 2020-04-21
    • 2011-05-18
    • 2020-10-12
    • 2016-12-27
    • 1970-01-01
    相关资源
    最近更新 更多