我有一個名爲project
表。SQL語法:我想限制colmn值到一個特定的列表
在該表格中名爲project_statu
的列。
所以我想要做的是限制該列到一個特定的列表,(
- '完成', '正在進行'
- ,
- '未完成'
)。
我試了一下,但沒有奏效:
update table project check project_statut in ('finished','not finished','in progress');
我有一個名爲project
表。SQL語法:我想限制colmn值到一個特定的列表
在該表格中名爲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中有兩種簡單的方法。首先是創建一個ProjectStatuses表和外鍵約束:
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
類型。你可以閱讀關於here。
是否有任何其他表將加入您的項目表? – Pirate
請使用標點符號;你的問題是一個單獨的句子,很難閱讀。 – HoneyBadger
MySQL有枚舉和設置類型 - 它們可以用來做你想做的事情 - 但它們有它們自己的缺點。你可以用允許的值創建第二個鏈接表。 – PaulF