Как установить определенное поле, чтобы не нуль? - PullRequest
0 голосов
/ 29 марта 2019

У меня есть таблица, в которой два столбца показывают страну и паспорт соответственно, оба типа 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

1 Ответ

0 голосов
/ 29 марта 2019

Я думаю, вы хотите ограничение check, а не not null ограничение:

alter table profesor
    add constraint chk_profesor_passport
        check (passport is not null or country = 'Italy');
...