Russian Qt Forum

Qt => Базы данных => Тема начата: xela73 от Июнь 08, 2005, 17:38



Название: MySql как определить уникальный ключ только что вставленной
Отправлено: 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();


Название: MySql как определить уникальный ключ только что вставленной
Отправлено: MaxWin от Июнь 08, 2005, 18:26
А в чем проблема?
Cделай выборку по максимальному значению поля.


Название: MySql как определить уникальный ключ только что вставленной
Отправлено: Sergeich от Июнь 08, 2005, 21:22
Можешь сделать так
q.exec( "SELECT id FROM test WHERE id = LAST_INSERT_ID()" );


Название: MySql как определить уникальный ключ только что вставленной
Отправлено: xela73 от Июнь 09, 2005, 08:42
Цитата: "Sergeich"
Можешь сделать так
q.exec( "SELECT id FROM test WHERE id = LAST_INSERT_ID()" );


А не возникнит ситуация, когда между моим INSERT-ом и SELECT ... = LAST_INSERT_ID пройдет "чужой" INSERT и мне вернется "чужая" запись?


Название: MySql как определить уникальный ключ только что вставленной
Отправлено: MaxWin от Июнь 09, 2005, 09:49
Ну если транзакций много и так боязно блокируй таблицу.


Название: MySql как определить уникальный ключ только что вставленной
Отправлено: kula от Июнь 10, 2005, 05:36
сделай запрос вида
select last_insert_id() from aaaaa

last_insert_id() это последний вставленный индекс для большей информации читай документацию по MySQL