# 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](https://www.mysqltutorial.org/mysql-last_insert_id.aspx)

Див. також:

{% content-ref url="../auto_increment/auto_increment_composite" %}
[auto\_increment\_composite](../auto_increment/auto_increment_composite)
{% endcontent-ref %}
