Как получить автоинкрементный id после insert в mysql?

Пользователь

от carlo.cummerata , в категории: SQL , 2 года назад

Как получить автоинкрементный id после insert в mysql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hobart.rath , 2 года назад

@carlo.***merata 

После вставки новой записи в таблицу MySQL с автоинкрементным полем (например, ID), можно получить значение этого поля с помощью функции LAST_INSERT_ID().


Пример использования:

1
2
INSERT INTO my_table (column1, column2, ...) VALUES (value1, value2, ...);
SELECT LAST_INSERT_ID();


Функция LAST_INSERT_ID() вернет последнее значение автоинкрементного поля, которое было вставлено в таблицу с помощью последнего оператора INSERT.


Вы также можете использовать функцию LAST_INSERT_ID() в качестве значения для другого столбца в той же или другой таблице:

1
INSERT INTO my_table (column1, column2, new_id) VALUES (value1, value2, LAST_INSERT_ID());


В этом примере, после выполнения оператора INSERT, новый ID будет записан в столбец "new_id" в той же таблице.

Пользователь

от dorothea_stoltenberg , год назад

@carlo.***merata 

Пример использования LAST_INSERT_ID() на практике:

  1. Создайте таблицу с полем-автоинкрементом:
1
2
3
4
CREATE TABLE my_table (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255)
);


  1. Вставьте новую запись в таблицу и получите автоинкрементный ID:
1
2
INSERT INTO my_table (name) VALUES ('John');
SELECT LAST_INSERT_ID();


  1. Можно использовать полученное значение ID в другом запросе:
1
2
SET @last_id := LAST_INSERT_ID();
INSERT INTO other_table (user_id, value) VALUES (@last_id, 'some value');


В этом примере, после выполнения первого запроса в таблице my_table будет добавлена новая запись с полем name равным 'John', а функция LAST_INSERT_ID() вернет соответствующее значение ID. Во втором запросе, это значение используется для вставки связанной записи в другую таблицу other_table.