如何将特定字段设置为不为空?
How to set a specific field to not null?
我有一个 table ,其中两列分别显示国家和护照都是 varchar 类型,它还有其他列但与问题无关,我想添加一个约束条件特定国家可能没有护照。例如,只有意大利可以有护照,或者可以设置为空,其他国家必须有护照。
我试过这个代码:
alter table profesor alter column passport set not null where country != 'Italy'
这将删除下一个错误:
ERROR: syntax error at or near "where"
LINE 1: ...able profesor alter column passport set not null where country...
^
SQL state: 42601
Character: 58
我认为您需要 check
约束,而不是 not null
约束:
alter table profesor
add constraint chk_profesor_passport
check (passport is not null or country = 'Italy');
我有一个 table ,其中两列分别显示国家和护照都是 varchar 类型,它还有其他列但与问题无关,我想添加一个约束条件特定国家可能没有护照。例如,只有意大利可以有护照,或者可以设置为空,其他国家必须有护照。
我试过这个代码:
alter table profesor alter column passport set not null where country != 'Italy'
这将删除下一个错误:
ERROR: syntax error at or near "where"
LINE 1: ...able profesor alter column passport set not null where country...
^
SQL state: 42601
Character: 58
我认为您需要 check
约束,而不是 not null
约束:
alter table profesor
add constraint chk_profesor_passport
check (passport is not null or country = 'Italy');