Добрый день.
Есть таблица, в которой имеется составной ключ, например "идентификатор контракта" и "год исполнения".
Выполняется операция UPDATE по всей таблице, поле "год исполнения" увеличивается на единицу для всех контрактов, например
UPDATE table1 SET year = year + 1
При выполнении данной команды получаем ошибку, например
ОШИБКА: повторяющееся значение ключа нарушает ограничение уникальности "table1_idx"
DETAIL: Ключ "(year, id_contract)=(2016, 3305)" уже существует.
Если допустить, что команда выполнилась бы, то в итоге нарушения уникальности не было бы.
Вопрос, как на время выполнения команды, блокировать контроль на ограничение уникальности?
Есть решение удалить ключ и после его создать, но мне кажется это не лучшее решение. Есть ли другие варианты?
Спасибо