PostgreSQL проверяет одно из двух полей - PullRequest
0 голосов
/ 04 июня 2018

У меня есть таблица с полями name, code и code2.Как написать проверку, чтобы разрешить только строки с именем и одним из присутствующих кодов?

WellA, null, Code2 -  OK
WellB, Code1, null - OK
WellC, Code3, Code4 - OK
WellD, null, null - NOT OK

С уважением

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Вы можете добавить CHECK ограничение:

ALTER TABLE tab
ADD CONSTRAINT my_check CHECK (COALESCE(Code1,Code2) IS NOT NULL);

DBFiddle Demo

0 голосов
/ 04 июня 2018

Добавить проверочное ограничение:

CHECK (name IS NOT NULL AND
      (code IS NOT NULL OR code2 IS NOT NULL))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...