Учитывая два целых числа, начало и конец, и внешний ключ, как мне определить ограничение unique
для интервала start: end включительно и foreign_key
Учитывая, что у меня есть следующие записи в моем table:
+-------+-----+--------------------------------------+
| start | end | foreign_key |
+-------+-----+--------------------------------------+
| 10 | 20 | 04ef8258-917c-46d6-8db3-9c704d3f4fbd |
+-------+-----+--------------------------------------+
| 40 | 60 | 04ef8258-917c-46d6-8db3-9c704d3f4fbd |
+-------+-----+--------------------------------------+
Затем следующие вставки должны завершиться неудачно:
+-------+-----+--------------------------------------+
| start | end | foreign_key |
+-------+-----+--------------------------------------+
| 30 | 50 | 04ef8258-917c-46d6-8db3-9c704d3f4fbd |
+-------+-----+--------------------------------------+
| 12 | 18 | 04ef8258-917c-46d6-8db3-9c704d3f4fbd |
+-------+-----+--------------------------------------+
То, что я пробовал до сих пор:
alter table some_table
add constraint unique_interval_to_foreign_key_constraint
unique (start, end, foreign_key)
Это не работает, так как определяет только уникальное ограничение для дискретных точек и внешнего ключа, а не диапазон.
Любая помощь приветствуется.