Если вы хотите, чтобы col1
было нулевым, если col2
не равно 'y', вы можете записать ограничение CHECK как:
col2 = 'y' OR col1 IS NULL
Если вы хотите дополнительно указать, что col1
должно иметь значение, когда col2
равно 'y', вы можете записать ограничение как:
(col2 = 'y' AND col1 IS NOT NULL) OR (col2 != 'y' AND col1 IS NULL)
Вы должны написать это как ограничение таблицы, кстати. Я не думаю, что ограничение столбца может ссылаться на другие столбцы. (Но в любом случае ограничение столбца - это просто еще один способ записи ограничения таблицы, поэтому вы ничего не потеряете, записав вместо этого ограничения таблицы.)