powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
25 сообщений из 27, страница 1 из 2
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34819590
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно вопрос в названии.
Заранее спасибо.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34820416
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нет автоинкрементного поля или поля типа datestamp - никак.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34820575
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Автоинкрментное поле есть.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34820732
petsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему так
Select * ftom table order by <автоинкрементное поле> desc fetch first 1 rows only;
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34820767
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
naughty_breathСобственно вопрос в названии.
Заранее спасибо.Я правльно понял, что вы вставляете запись(и) в таблицу и хотите получить максимальное сгенерированное для вас значение автоинкрементного поля?
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34820897
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Из теории реляционных БД оно не обязательно будет максимальным.. в том-то и дело.
Выборка с селектом работает (проверил), но возвращает упорядоченный по значению а не по времени добавления набор данных.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34820925
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это поле - PK таблички.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34821084
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
naughty_breathИз теории реляционных БД оно не обязательно будет максимальным.. в том-то и дело.
Выборка с селектом работает (проверил), но возвращает упорядоченный по значению а не по времени добавления набор данных.В db2 при множественной вставке (insert ... select ...) нет понятия первой, последней или еще какой вставленной строки.
Можно, конечно, использовать для этого timestamp поле, заполняемое в insert select выражением
Код: plaintext
timestamp(generate_unique())
.
Но не очень понятно, зачем вам нужно именно последнюю по времени вставленную строку?
Вы можете получить все вставленные с помощью insert select строки и делать из них какие надо выборки...
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34821132
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно узнать PK последней вставленной записи, так как это значение используется как FK в других табличках.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34821163
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
naughty_breathМне нужно узнать PK последней вставленной записи, так как это значение используется как FK в других табличках.Вы записи по одной за раз вставляете?
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34821170
Фотография Alexey Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp
Посмотри: Retrieval of result sets from an SQL data change statement
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34821201
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Статью прочитал. спасибо. Помогло
Да. Записи вставляю по одной за один запрос.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34821353
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
naughty_breathДа. Записи вставляю по одной за один запрос.Тогда можно еще и identity_val_local() .
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34822059
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста как быть в этом случае

requestDB2 = con.prepareStatement("INSERT INTO DB2ADMIN.PERSON ( PERSONNAME, PERSONLASTNAME, PERSONMIDLNAME, PERSONBIRTHDAY, PERSONSEX, PERSONPHONES, PESONEMAIL, PERSONMARITALSTATUS, PERSONHOBBY, PERSONADDITIONALDETAILS) "
+ "VALUES (?,?,?,?,?,?,?,?,?,?)");
requestDB2.setString(1, record.firstName);
requestDB2.setString(2, record.lastName);
requestDB2.setString(3, record.midlName);
requestDB2.setDate(4, record.dayBirth);
requestDB2.setString(5, record.sex);
requestDB2.setString(6, record.phones);
requestDB2.setString(7, record.eMail);
requestDB2.setString(8, record.family);
requestDB2.setString(9, record.hobby);
requestDB2.setString(10, record.additionalInfo);
requestDB2.executeUpdate();
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34822241
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дальше делаете:
---
Statement st = null;
ResultSet rs = null;
BigDecimal bd = null;
try {
st = con.createStatement();
st.executeQuery("values identity_val_local()");
if (rs.next()) bd = rs.getBigDecimal(1);
} finally {
if (rs!=null) {rs.close(); rs=null;}
if (st!=null) {st.close(); rs=null;}
}
...
---
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34822244
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Oops!

rs = st.executeQuery("values identity_val_local()");
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34822302
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Попробую.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34822771
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При запуске выдает исключение :(. Хотя когда выполняю скрипт в DB2 непосредственно рисует такую вещь:


вот запрос в менеджере команд DB2:


скрипт создания таблицы в аттаче.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34822916
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прочитал статью на официальном сайте IBM.
Но почему-то такой скрипт:

select personid from FINAL TABLE (INSERT into db2admin.person (personname, personlastname) values ('Вася', 'Вова'))

моя DB2 WSE 8.1 воспринимать не хочет - ощибка такая:
---
DBA2191E Ошибка выполнения SQL.

com.ibm.db.DataException: Ошибка
менеджера баз данных. : [IBM][CLI Driver][DB2/NT] SQL0104N
Обнаружен неправильный элемент "into" после текста "FINAL TABLE
(INSERT". Список правильных элементов: ",". SQLSTATE=42601
---
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34823129
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В DB2 nested запросы именованные

select * from FINAL TABLE (insert into... ) as xz
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34823268
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Что выдает у вас команда
db2level
?

2. Что за исключение при
rs = st.executeQuery("values identity_val_local()");
?
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34823745
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nkulikovВ DB2 nested запросы именованные

select * from FINAL TABLE (insert into... ) as xz


Вот в таком запросе возникает та же ошибка:

select * from FINAL TABLE (INSERT into db2admin.person (personname, personlastname) values ('Вася', 'Вова')) as person
-----
Команда db2level выдает следующую ошибку:

SQL0104N Обнаружен неправильный элемент "END-OF-STATEMENT" после
текста "db2level". Список правильных элементов: "JOIN
<joined_table> ".

Объяснение:

Обнаружена синтаксическая ошибка в операторе SQL, где указанный
элемент следует после текста "<текст>". В поле "<текст>"
показаны 20 символов оператора SQL непосредственно перед неверным
элементом.

В качестве подсказки программисту поле SQLERRM области SQLCA
содержит частичный список правильных элементов в виде
"<список-элементов>". При составлении этого списка
подразумевается, что предыдущая часть оператора не содержит
ошибок.

Оператор невозможно обработать.

Действия пользователя:

Проверьте и исправьте оператор в области указанного элемента.

sqlcode : -104

sqlstate : 42601
----------------
Ключик свой получил спасибо всем, кто помогал, огромное.
Но могли бы мне разъяснить по поводу запросов (см.выше), где используется FINAL TABLE.
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34823834
passm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
db2level - в командной строке OS
...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34824154
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон.

...
Рейтинг: 0 / 0
Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
    #34825217
naughty_breath
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста, почему такой запрос не обрабатывается DB2 8.1 WSE (ошибка описана выше):
select * from FINAL TABLE (INSERT into db2admin.person (personname, personlastname) values ('Вася', 'Вова')) as person
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как получить последнюю сделанную в какую либо табличку запись в DB2 8.1 JDBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]