如何对列进行约束,使其只能包含下列值?您将这种类型的约束称为什么?
Allowed values: "yes", "no" or "maybe"
Column Data Type: nvarchar(5)
DBMS: SQL Server 2008
发布于 2013-11-20 17:34:29
是的,检查约束是不是你需要的。可以在表声明中声明check constraint:
CREATE TABLE test(
_id BIGINT PRIMARY KEY NOT NULL,
decision NVARCHAR(5),
CHECK (decision in ('yes','no','maybe'))
);
发布于 2012-08-16 14:39:54
使用枚举表是一种方法。
发布于 2021-10-20 04:19:57
2021在这里,我想知道我们是否可以用另一种方式来做这件事(与检查约束相比,不一定是更好的方式)。
对于只允许“是”、“否”或“可能”值的列,也许我们可以有一个位类型的列,然后在它旁边有一个计算列,如下所示
Create Table xxx (
ColumnName bit null,
ColumnNameDerived varchar(10) as
case ColumnName
when 0 then 'no'
when 1 then 'yes'
else 'maybe'
end
)
对于具有更多可能值的列,可以选择tinyint类型,然后使用检查约束,如"<= 10“。假设一列有10个可能的值,那么约束"< 10“就可以了。
所以这个约束不会读得太长,你马上就知道有多少个可能的值。这也有助于节省存储空间。
https://stackoverflow.com/questions/11981868
复制相似问题