При внесении записи в таблицу,
содержащую столбец с атрибутом
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 во второй таблице
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
