如何将特定字段设置为不为空?

问题描述 投票:0回答:1

我有一个表,其中两列显示国家和护照分别是类型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
sql postgresql pgadmin-4
1个回答
0
投票

我想你想要一个check约束,而不是not null约束:

alter table profesor
    add constraint chk_profesor_passport
        check (passport is not null or country = 'Italy');
© www.soinside.com 2019 - 2024. All rights reserved.