我有一个名为project
的表。
在那个表中有一个名为project_statu
的列。
所以我想做的是将该列限制在一个特定的列表中,作为(
- "已完成"
- "正在进行中"
- '未完成'
)。
我尝试了但没有成功:
update table project check project_statut in ('finished','not finished','in progress');
您必须使用Check
约束创建表
CREATE TABLE Project
(
P_Id number,
project_status varchar(50) NOT NULL,
CONSTRAINT chk_st CHECK (project_status='finished' or project_status= 'in progress' or project_status='not finished')
)
更新
如需更多帮助,请访问W3schools
希望它能有所帮助。
MySQL中有两种简单的方法。第一个是创建ProjectStatues表和外键约束:
create table ProjectStatuses (ProjectStatus varchar(255));
insert into ProjectStatuses(ProjectStatus)
values ('finished'), ('in progress'), ('not finished');
然后使用外键约束:
alter table project
add constraint fk_project_projectstatuses
foreign key project_status references ProjectStatuses(ProjectStatus);
MySQL的另一种方法是使用enum
类型。你可以在这里阅读。