У меня есть таблица scheduleitem
со столбцами для room
, dayofweek
, starttime
и endtime
. Я хотел бы иметь возможность создать уникальный индекс для room
и dayofweek
, где предикат (каким-то образом) предотвращает наложение таблицы с временами перекрытия, то есть предотвращает перекрытие там, где есть потенциальная новая строка r2
и любой заданный существующая строка r1
удовлетворяет
r2.endtime > r1.starttime and r1.endtime > r2.starttime
Пока что я не могу добавить подзапрос к предикату частичного индекса, и любая хранимая процедура, на которую я ссылаюсь в списке уникальных столбцов, должна быть неизменной (не может выполнять какие-либо запросы), поэтому я в тупике.