MariaDB функция LAST_INSERT_ID

В этом учебном пособии вы узнаете, как использовать MariaDB функцию LAST_INSERT_ID с синтаксисом и примерами.

Описание

MariaDB функция LAST_INSERT_ID возвращает первое значение AUTO_INCREMENT, которое было установлено самой последней инструкцией INSERT или UPDATE, которая затронула столбец AUTO_INCREMENT.

Синтаксис

Синтаксис функции LAST_INSERT_ID в MariaDB:

LAST_INSERT_ID( [expression] )

Параметры или аргументы

expression
Необязательный. Если указано expression, значение возвращается LAST_INSERT_ID и запоминается как следующее значение, возвращаемое функцией LAST_INSERT_ID.

Примечание

  • Если в самом последнем операторе INSERT или UPDATE установлено более одного значения AUTO_INCREMENT, функция LAST_INSERT_ID возвращает только первое значение AUTO_INCREMENT.
  • Функция LAST_INSERT_ID возвращает последнее значение AUTO_INCREMENT для каждого клиента, поэтому она будет возвращать только последнее значение AUTO_INCREMENT для вашего клиента. На значение не могут повлиять другие клиенты.
  • Выполнение функции LAST_INSERT_ID не влияет на значение, которое возвращает LAST_INSERT_ID.

Применение

Функция LAST_INSERT_ID может использоваться в следующих версиях MariaDB:

  • MariaDB 10

Пример

Рассмотрим некоторые примеры функции LAST_INSERT_ID, чтобы понять, как использовать функцию LAST_INSERT_ID в MariaDB.
Например, если бы у нас была следующая таблица sites с полем AUTO_INCREMENT с именем site_id:

И таблица sites содержала бы следующие записи:

site_id site_name server_name
1 Yahoo.com MyServer

И мы выполнили следующий оператор INSERT:

Таблица sites теперь будет выглядеть так:

site_id site_name server_name
1 Yahoo.com MyServer
2 Google.com YourServer

И если мы выполним функцию LAST_INSERT_ID следующим образом:

Функция LAST_INSERT_ID вернет 2, так как последний оператор INSERT вставил запись в таблицу сайтов со значением site_id (то есть: значение AUTO_INCREMENT), равным 2.

Влияет на более чем одно значение AUTO_INCREMENT

Давайте кратко рассмотрим, как будет вести себя функция LAST_INSERT_ID, если в самом последнем INSERT задано более одного значения AUTO_INCREMENT. Другими словами, что произойдет, если мы вставим 2 записи.

Давайте снова посмотрим на таблицу сайтов с полем AUTO_INCREMENT с именем site_id:

И таблица sites содержала бы следующие записи:

site_id site_name server_name
1 Yahoo.com MyServer

И мы выполнили следующий оператор INSERT, который вставляет более одной записи в таблицу сайтов:

После выполнения этого оператора INSERT таблица сайтов теперь будет выглядеть так:

site_id site_name server_name
1 Yahoo.com MyServer
2 Google.com YourServer
3 Yandex.com NewServer

Как вы можете видеть, оператор INSERT вставил 2 новые записи в таблицу сайтов (site_id = 2 и site_id = 3).

Теперь, когда мы выполняем функцию LAST_INSERT_ID следующим образом:

Функция LAST_INSERT_ID вернула бы 5, потому что запись с site_id = 2 была первым значением AUTO_INCREMENT, которое было установлено самой последней инструкцией INSERT.