> For the complete documentation index, see [llms.txt](https://olexsyn.gitbook.io/enote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olexsyn.gitbook.io/enote/data/mysql/functions/last_insert_id.md).

# LAST\_INSERT\_ID()

У розробці бази даних ми часто використовуємо сурогатний ключ для створення унікальних [цілих](https://www.mysqltutorial.org/mysql-int/) значень для стовпця [первинного ключа](https://www.mysqltutorial.org/mysql-primary-key/) таблиці за допомогою `AUTO_INCREMENT`атрибута:

```sql
CREATE TABLE table_name(
    id INT AUTO_INCREMENT,
    ...,
    PRIMARY KEY(id)
);
```

Коли ви [вставляєте рядок у таблицю,](https://www.mysqltutorial.org/mysql-insert-statement.aspx) не вказуючи значення для `id`стовпця, MySQL автоматично генерує послідовне унікальне ціле число для `id`стовпця.

Функція `LAST_INSERT_ID()`повертає автоматично згенероване ціле число ( `BIGINT UNSIGNED`), успішно вставлене в  `AUTO_INCREMENT`стовпець.

Якщо ви [вставляєте кілька рядків](https://www.mysqltutorial.org/mysql-insert-multiple-rows/) у таблицю за допомогою одного `INSERT`оператора, `LAST_INSERT_ID()`функція **повертає лише перше** автоматично згенероване значення.

Якщо вставка не вдається, результат, який повертає, `LAST_INSERT_ID()`залишається незмінним.

Функція `LAST_INSERT_ID()`працює за клієнтонезалежним принципом. Це означає, що значення, яке повертає `LAST_INSERT_ID()`функція для конкретного клієнта, є значенням, згенерованим цим клієнтом лише для того, щоб кожен клієнт міг отримати свій власний унікальний ідентифікатор.

Повна стаття: <https://www.mysqltutorial.org/mysql-last_insert_id.aspx>

Див. також:

{% content-ref url="/pages/kVCZbeTpQTLd9rsjaNk1" %}
[AUTO\_INCREMENT у складовому індексі](/enote/data/mysql/auto_increment/auto_increment_composite.md)
{% endcontent-ref %}
