SQL 对单个列的多个约束
SQL Multiple constraints on a single column
我正在与 sql 服务器和 table 工作人员一起工作。
我需要添加一列“性别”并应用两个约束:检查和默认。
所以我需要检查他们的性别是 male/female 并且默认值应该是“待更新”
我的查询看起来像这样,但它不起作用:
ALTER TABLE Workers
ADD Gender VARCHAR(6) CHECK (Gender IN ('Male', 'Female'))
DEFAULT 'To be updated'
您没有说“不起作用”是什么意思,但是 varchar(6)
不包含 'To be updated'
的 13 个字符,您需要将默认值包含在允许的范围内价值。明确命名约束也是一个好主意,这样您将来可以轻松引用它们。
alter table Workers add
Gender varchar(13)
constraint GenderCheck check (Gender in ('Male', 'Female','To be updated') )
constraint GenderDefault default ('To be updated');
另请注意 - 添加列时指定 not null
会将默认值应用于现有行。
我正在与 sql 服务器和 table 工作人员一起工作。
我需要添加一列“性别”并应用两个约束:检查和默认。
所以我需要检查他们的性别是 male/female 并且默认值应该是“待更新”
我的查询看起来像这样,但它不起作用:
ALTER TABLE Workers
ADD Gender VARCHAR(6) CHECK (Gender IN ('Male', 'Female'))
DEFAULT 'To be updated'
您没有说“不起作用”是什么意思,但是 varchar(6)
不包含 'To be updated'
的 13 个字符,您需要将默认值包含在允许的范围内价值。明确命名约束也是一个好主意,这样您将来可以轻松引用它们。
alter table Workers add
Gender varchar(13)
constraint GenderCheck check (Gender in ('Male', 'Female','To be updated') )
constraint GenderDefault default ('To be updated');
另请注意 - 添加列时指定 not null
会将默认值应用于现有行。