У меня проблема с нарушением проверочного ограничения.Мне не удалось ее решить, ошибка заключается в следующем:
Причина: org.postgresql.util.PSQLException: ОШИБКА: новая строка для отношения "project_employee" нарушает проверочное ограничение "ck_pe_overlap" Detail: Failing rowсодержит (95, 96, 1390, 2019-01-01, 2019-02-28, 100, ON_PROJECT, 203, NO).
МОЕ проверочное ограничение это
CONSTRAINT ck_pe_overlap
CHECK (check_periods_overlap(employee_id, project_id, start_date, end_date) = 0::bit(1));
Таким образом, я увидел почти аналогичный вопрос в StackOverflow, я глубоко взглянул на них, но все еще не мог найти, в чем ошибка.Я очень новичок в Postgres и не слишком много знаю об этом.
Вот мой стол
Employee_id Project_id Project_ Employee_id Start_date End_date occupied status Role_id key
"47" "96" "1440" "2019-04-07" "2019-04-30" 100 "ON_PROJECT" "3" "NO"
Аналогичный вопрос
Это новое ограничение не позволяет добавлять интервал, который перекрывается на уровне базы данных.
Мы можем удалить это ограничение, но я считаю, что ограничение полезно, поскольку оно не позволит базе данных содержать неверные данные.Это ** ограничение ** не позволяет сбою временного интервала, например, если для записи я выбираю дату: 1 / 2019-1 / 2019 (означает, что она начинается и заканчивается в том же месяце), все в порядке, но япопробуйте для этой записи добавить новый интервал 1 / 2019-2 / 2019) для того же Employee_id "47" и Project_id "96", происходит ошибка.