限制列以仅接受2个值

She*_*n.W 10 mysql sql database input

我在表格中有一个名为"患者类型"的列.我想确保只有2个值可以插入到列中,opd或者被允许,除此之外,所有其他输入都无效.

以下是我想要的一个例子

在此输入图像描述

如何确保该列仅接受"opd"或"已接纳"作为"患者类型"列的数据.

Mar*_*rkD 10

我不是MySQL开发者,但我认为这可能是你正在寻找的. ENUM

  • 是的,ENUM是一个适用于这个特定问题的解决方案,比CHECK约束要容易得多.特别是因为CHECK在MySQL中不起作用,你需要一个触发器.ENUM也更容易理解,因此它更好地记录了列的约束. (3认同)

pet*_*rov 10

您需要检查约束.

ALTER TABLE [TableName] ADD CONSTRAINT 
my_constraint CHECK (PatientType = 'Admitted' OR PatientType = 'OPD')
Run Code Online (Sandbox Code Playgroud)

你需要检查它是否适用于MySQL,特别是今天.
似乎它不起作用(或者至少它不是几年前).

MySQL CHECK约束

MySQL中的CHECK约束不起作用

MySQL CHECK约束解决方法

不确定它现在是否已修复.

如果不起作用,请使用触发器而不是检查约束.