В предыдущей статье рассматривалось, как средствами 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".
ID последней записи в базе данных запросом SQL
Запросы SQL для обновления данных (UPDATE)
Условия отбора в запросе SQL (WHERE)
В комментариях запрещено публиковать рекламные материалы. Все сообщения оправляются на модерацию и будут опубликованы, если не нарушают правил сайта после проверки.