8.4.6.3 Как получить уникальный идентификатор для последней внесенной строки?
8.4.6.3 Как получить уникальный идентификатор для последней внесенной строки?
При внесении записи в таблицу, содержащую столбец с атрибутом
AUTO_INCREMENT, последний сгенерированный идентификатор можно получить,
вызвав функцию mysql_insert_id().
Для извлечения этого id можно также использовать функцию LAST_INSERT_ID()
в строке запроса, передаваемой в mysql_query().
Для проверки, используется или нет поле AUTO_INCREMENT, можно выполнить
следующий код. Этот код также проверяет, был ли данный запрос вида INSERT
с использованием AUTO_INCREMENT:
if (mysql_error(&mysql)[0] == 0 &&
mysql_num_fields(result) == 0 &&
mysql_insert_id(&mysql) != 0)
{
used_id = mysql_insert_id(&mysql);
}
Самое последнее сгенерированное значение идентификатора сохраняется на
сервере в течение времени жизни данного соединения. Это значение не может
быть изменено другим клиентом, более того, оно не будет изменено даже при
обновлении другого столбца AUTO_INCREMENT конкретной величиной (т.е. не
NULL или 0).
Идентификатор, который был сгенерирован для одной таблицы, можно вставить
в другую таблицу, используя команды SQL, как показано ниже:
INSERT INTO foo (auto,text)
VALUES(NULL,'text'); # генерация ID вставкой NULL
INSERT INTO foo2 (id,text)
VALUES(LAST_INSERT_ID(),'text'); # использование ID во второй таблице
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий
|