СтатьиРабота с SQL и базами данных

ID последней записи в базе данных запросом SQL

В предыдущей статье рассматривалось, как средствами PHP получить ID последней добавленной записи в таблицу БД. В этой статье рассмотрим как выполнить эту задачу без применения функций языков программирования, использовав только возможности SQL.

Для получения этого значения в SQL используется команда LAST_INSERT_ID(). Она возвращает значение, автоматически сгенерированное при вставке новой записи в таблицу для поля с параметром AUTO_INCREMENT (счетчик).

Например, имеется таблица с полями:

id – числовое поле с параметром AUTO_INCREMENT;

name – строковый тип;

description – строковый тип;

Первым запросом выполним вставку записи о новом товаре в таблицу products. После вставки нового товара, нужно добавить информацию о нем в другую таблицу. SQL-запросом это можно выполнить так:

$sql = "INSERT INTO products (name, description) VALUES ('утюг', 'Очень хороший утюг');
INSERT INTO my_table (product_id, my_info) VALUES (LAST_INSERT_ID(), 'Новый товар!');"
mysql_query($sql);

После выполнения такого запроса, в таблицу my_table будет добавлена новая запись, где в качестве значения для product_id будет указан сформированный в предыдущем запросе идентификатор.

Стоит иметь ввиду, что выполнять эти запросы лучше непосредственно один за другим. Иначе счетчик может обнулиться или в БД будет выполнен другой запрос, что изменит текущий "последний ID".


Комментарии

Имя:
Текст комментария:
* В комментариях запрещено публиковать рекламные объявления. Сообщения, содержащие ссылки на сторонние ресурсы добавляется в скрытом режиме. Они будут открыты, если не нарушают установленных правил, после проверки.
Защита от спам-роботов (* Обязателельно укажите ответ на простой вопрос ниже.)
Сколько букв в слове «барабан»? (цифра)