Каков наилучший способ (с точки зрения производительности вставки) реализовать функции автоматического инкремента в Oracle (11.2), когда вам нужно получить вновь сгенерированный ключ с помощью JDBC?Функциональность Oracle Autoincrement: триггеры или Oracle JDBC CallableStatement в 11.2?
Я знаю, что в Oracle 12 есть столбцы с идентификаторами, но сейчас я придерживаюсь 11.2.
Как и многие другие, мне не удавалось получить JDBC getGeneratedKeys() для работы с Oracle. Я закончил с триггером в своей базе данных Oracle (11.2), которая действует как функция автоинкремента MySQL и вставляет NextVal из определенной последовательности таблицы, чтобы действовать как ее первичный ключ всякий раз, когда есть вставка в эту таблицу. Это затрудняло получение недавно вставленного ключа, но в итоге я сделал второй запрос, чтобы получить вновь сгенерированный ключ.
Совсем недавно я обнаружил CallableStatement с возвращаемыми значениями, и я вижу, как они могут быть использованы для выполнения всего 1 вызова.
Это последний способ, как правило, более быстрый способ делать вставки, когда вам также нужен этот вновь сгенерированный ключ, или есть лучший вариант для меня, который мне не хватает?
Не можете ли вы использовать объект (ы) последовательности оракула? –
[Это] (https://hoopercharles.wordpress.com/2011/03/25/sequence-driven-primary-keys-which-is-better-call-nextval-in-the-insert-statement-or-in -a-row-level-trigger /) и [this] (https://www.krenger.ch/blog/oracle-primary-key-sequence-performance/) ссылки могут быть вам полезны. – svaor
Вы можете проверить себя, какой побочный эффект даст JDBC. Я думаю, будет дешевле использовать два запроса. – svaor