SQL是否具有OR或|
等效的属性类型,它们只是少数可能性中的一种(即Enum类型)?
使用我对下表中status
属性的最佳猜测的示例:
CREATE TABLE Rental (
status ("open" | "closed"),
date datetime,
id int PRIMARY KEY
)
我希望状态为“开放”或“关闭”,没有别的。是否有这种语法,或者我应该使用CHAR(6)
还是应该使用约束?
答案 0 :(得分:1)
CREATE TABLE Rental (
status char(6),
date datetime,
id int PRIMARY KEY
Check (status='open' OR status='closed')
)
最好存储状态如int(1-开,0 - 关闭,等等)
答案 1 :(得分:1)
您可以在定义表时使用检查约束来缩小属性的域。
CREATE TABLE Rental (
status char(6),
date datetime,
id int PRIMARY KEY
);
alter table Rental
add constraint status_valid_value
check (status is null or (status in ('open','closed')));