Как я могу сказать, какая строка была вставлена ​​в БД Firebird через JSP - PullRequest
2 голосов
/ 26 января 2012

Я использую executeUpdate (запрос), чтобы вставить строку в таблицу базы данных Firebird, и пока это работает, все, что он говорит мне, это работало или нет.

Что мне нужно знать, так это то, ЧТО была вставлена ​​строка, т. Е. Когда в запись вставлен уникальный первичный ключ, и мне нужно знать этот идентификатор, чтобы на него можно было ссылаться в последующих операторах.

Возможно ли это сделать, и если да, то как?

Спасибо

Neil

Ответы [ 2 ]

3 голосов
/ 26 января 2012

Вы можете использовать предложение RETURNING INSERT STATEMENT, представленное в Firebird 2.0:

INSERT INTO ... RETURNING PKFieldName
2 голосов
/ 26 января 2012

Я только что отправил это по почте в ответ на ваше письмо в список рассылки Firebird-Java:

Jaybird 2.2 добавит поддержку для получения сгенерированного ключа с помощью getGeneratedKeys () (в сочетании с конкретными методами выполнения, которые являютсяопределено в JDBC для поддержки этой функции).

Эта функциональность, однако, недоступна в Jaybird 2.1.6 IIRC, но - с Firebird 2.0 или выше - вы можете использовать INSERT ... RETURNING <your-primary-key-field> и выполнить его как запрос (например,executeQuery) вместо обновления.Возвращенный набор результатов затем будет включать сгенерированный первичный ключ (который почти идентичен тому, что Jaybird 2.2 сделает для функции getGeneratedKeys ()).

...