sql语法:我想将colmn值限制在一个特定的列表中



我有一个名为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类型。你可以在这里阅读。

最新更新