Предположительно, ошибка в том, что у вас есть данные, которые нарушают ограничение.Итак, проверьте, верно ли это в существующих данных:
select t.*
from mytable t
where not ( (sales_status = 3 ) or (progression_status < 80) );
Обратите внимание, что это предполагает, что столбцы не null
.(check
ограничения и where
трактуют null
логические значения по-разному.)
РЕДАКТИРОВАТЬ:
Я думаю, что логика вам нужна:
CHECK ((sales_status <> 3 ) or (progression_status >= 80));