Функция MySQL LAST_INSERT_ID
При проектировании базы данных часто используется суррогатный ключ, чтобы генерировать уникальные целочисленные значения для столбца первичного ключа с помощью атрибута AUTO_INCREMENT.
Это значит, что при вставке в таблицу новой строки, которая имеет столбец AUTO_INCREMENT, MySQL автоматически генерирует уникальное целое число и использует его для этого столбца.
Вы можете получить сгенерированный порядковый номер с помощью функции MySQL INSERT_ID и использовать его для следующих операций, например, для вставки новой строки в связанную таблицу.
Пример MySQL LAST_INSERT_ID
Давайте рассмотрим пример использования функции MySQL LAST_INSERT_ID.
Создадим новую таблицу для тестирования под названием tbl. В таблице tbl установим атрибут AUTO_INCREMENT для столбца id:
CREATE TABLE tbl (
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR(250) NOT NULL
);
Затем вставим новую строку в таблицу tbl:
INSERT INTO tbl(description)
VALUES('MySQL last_insert_id');
Воспользуемся функцией MySQL LAST_INSERT_ID для получения идентификатора последней вставленной строки, который был сгенерирован MySQL.
SELECT LAST_INSERT_ID();

Важно отметить, что если вставить несколько строк в таблицу с помощью одного оператора INSERT, то функция LAST_INSERT_ID вернет идентификатор первой вставленной строки.
Предположим, столбец AUTO_INCREMENT имеет текущее значение 1, и вы вставляете три строки в таблицу. Когда вы примените функцию LAST_INSERT_ID, то получите значение 2 вместо 4.
Следующее выражение вставляет три строки в таблицу tbl и получает идентификатор последней вставки с помощью функции LAST_INSERT_ID.
INSERT INTO tbl(description)
VALUES('record 1'),
('record 2'),
('record 3');
SELECT LAST_INSERT_ID();

Проверим данные таблицы tbl:
SELECT * FROM tbl;

Функция LAST_INSERT_ID работает независимо от клиента. Это значит, что значение, возвращаемое функцией LAST_INSERT_ID для отдельного клиента, является значением, сгенерированным только этим клиентом. Благодаря этому каждый пользователь получает свой собственный уникальный идентификатор.
В этой статье мы показали, как использовать функцию MySQL LAST_INSERT_ID для получения порядкового номера последней строки, добавленной в таблицу.