Merge при genered identity
у меня есть таблица в oracle в поле стоит generated by default as identity, при выполнении метода merge на обновление запись меняется без проблем, но при merge на insert номер записи увеличивается не на 1 а на 2, подскажите почему? generated always as identity не помогло
дипсик говорит такое, это правда?
Это известная особенность Oracle при использовании GENERATED BY DEFAULT AS IDENTITY в сочетании с операцией MERGE. При вставке новой записи через MERGE Oracle может дважды запрашивать следующее значение последовательности, что приводит к увеличению идентификатора на 2 (или даже больше, в зависимости от версии Oracle и конфигурации). Причины: Операция MERGE сначала проверяет существование записи (часть UPDATE), а затем, если запись не найдена, выполняет вставку (часть INSERT). В некоторых версиях Oracle это приводит к "потере" одного значения последовательности.