Russian Qt Forum
Ноябрь 23, 2024, 04:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: MySql как определить уникальный ключ только что вставленной  (Прочитано 9398 раз)
xela73
Гость
« : Июнь 08, 2005, 17:38 »

В таблице test поле test первичный ключ определено как auto_increment.
Делаю
QSqlQuery q;
q.exec( "insert into test (name) values ('hy frends');" );

Как мне получить значение поля test вставленной записи?
В mysql.h была функция mysql_insert_id();
Записан
MaxWin
Гость
« Ответ #1 : Июнь 08, 2005, 18:26 »

А в чем проблема?
Cделай выборку по максимальному значению поля.
Записан
Sergeich
Гость
« Ответ #2 : Июнь 08, 2005, 21:22 »

Можешь сделать так
q.exec( "SELECT id FROM test WHERE id = LAST_INSERT_ID()" );
Записан
xela73
Гость
« Ответ #3 : Июнь 09, 2005, 08:42 »

Цитата: "Sergeich"
Можешь сделать так
q.exec( "SELECT id FROM test WHERE id = LAST_INSERT_ID()" );


А не возникнит ситуация, когда между моим INSERT-ом и SELECT ... = LAST_INSERT_ID пройдет "чужой" INSERT и мне вернется "чужая" запись?
Записан
MaxWin
Гость
« Ответ #4 : Июнь 09, 2005, 09:49 »

Ну если транзакций много и так боязно блокируй таблицу.
Записан
kula
Гость
« Ответ #5 : Июнь 10, 2005, 05:36 »

сделай запрос вида
select last_insert_id() from aaaaa

last_insert_id() это последний вставленный индекс для большей информации читай документацию по MySQL
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 21.