Мне нужно убедиться, что моя база данных содержит только те записи, в которых два или более столбцов уникальны. Этого легко добиться с помощью UNIQUE
ограничений по этим столбцам.
В моем случае, я должен запретить дублирование только для перекрытия временных диапазонов. В таблице есть valid_from
и valid_to
столбцы. В некоторых случаях может понадобиться сначала завершить активную запись, установивvalid_to = now
, а затем вставить новую запись, настроенную на valid_from = now
и valid_to = infinity
.
Я, кажется, в состоянии истечения срока действия предыдущей записи без каких-либо проблем с использованием UPDATE
, но вставка новой записи кажется проблематичным, так как мои базовые столбцы в настоящее UNIQUE
время, и поэтому не может быть добавлен снова
Я подумал о том, чтобы добавить valid_from
и valid_to
как часть UNIQUE
ограничения, но это только сделало бы ограничение более свободным и позволило бы
дублирует и перекрывает временные диапазоны, чтобы существовать.