В SQLServer кажется общепринятым, что добавление SELECT SCOPE_IDENTITY () в конец вставки - это лучший способ вернуть PK вновь вставленной записи, если вы используете поле с автоинкрементом для ПК.
Однако я не могу найти эквивалент для Oracle.
Лучшей практикой является использование последовательности для генерации PK, но существуют разные варианты реализации даже этого. Вы оставляете за разработчиком возможность добавлять sequence.nexval или использовать триггер?
В любом случае возвращение нового идентификатора, похоже, является распространенной проблемой.
Предложения и решения, с которыми я столкнулся, включают:
- создание хранимого процесса, который возвращает PK
- запустил идентификатор выбора из seq.nextval, а затем передал его на вставку
- выберите max (id) после вставки (Примечание: не делайте этого!)
- добавить предложение RETURNING для вставки
Каким должно быть решение "наилучшей практики" для этой ситуации?