mysql - 如何从 Mysql Workbench 创建 CHECK 约束

标签 mysql mysql-workbench check-constraints

<分区>

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

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

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

最佳答案

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

关于mysql - 如何从 Mysql Workbench 创建 CHECK 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31504165/

相关文章:

mysql - 查询统计占用了 99% 的查询时间

mysql - 如何将CSV文件中的数据导入MySQL数据库

mysql - 使用 DECLARE 在 MySQL 中创建变量

mysql - 从字段 mysql 更新部分字符串

sql-server - 如何创建多表检查约束?

SQL CHECK 约束问题

php - 如何从mysql表中回显整周的统计数据?

mysql - 如何在 MySQL 中使用 to_char 函数功能

mysql - 如何从 MySQLWorkbench EER 模型 (ERD) 转到 Django?

Django CheckConstraint : Elements of reverse ForeignKey lookup must not be empty