Проверка, имеет ли столбец определенное значение, затем ограничивает другой список
Мне интересно, есть ли способ проверить, есть ли у столбца значение, если это значение XXXXX, тогда в списке (A,B,C) должен быть другой столбец. что-то вроде:
CREATE TABLE test (a CHAR(60),b CHAR(60),Check (IF a == 'test' THEN b in ('a','b','c')));
1 ответ
Решение
Другими словами, в test
строки, b
должен быть в списке, а вtest
строки, b
может быть что угодно.
Так что для проверки, чтобы преуспеть, b
должен быть в списке, или строка не должна быть test
строка:
CHECK (a <> 'test' OR b IN ('a', 'b', 'c'))
Математически, a → b
такой же как ¬a ∨ b
,