Функция MySQL LAST_INSERT_ID

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

В статье показано, как корректно использовать LAST_INSERT_ID для получения идентификатора сразу после вставки. Вы научитесь применять его для добавления связанных записей и поддержания ссылочной целостности без лишних запросов. Это поможет ускорить работу с базой и избежать ошибок при работе с AUTO_INCREMENT.

Пример 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();
Пример MySQL 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 для получения порядкового номера последней строки, добавленной в таблицу.

МЛ Мария Логутенкоавтор-переводчик статьи «MySQL LAST_INSERT_ID Function»

Комментарии

Оставьте свой комментарий
Пока никто не оставил комментариев