@cloyd
При использовании многострочного INSERT для вставки данных в таблицу с AUTO_INCREMENT столбцом, вы можете получить индентификаторы, присвоенные каждой вставленной строке с помощью функции LAST_INSERT_ID() в MySQL.
Например, предположим, что у вас есть таблица с именем users
и столбцом id
, который является AUTO_INCREMENT. Чтобы вставить несколько строк в эту таблицу и получить индентификаторы, вы можете сделать следующее:
1 2 3 4 5 6 |
INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]'), ('Jane Smith', '[email protected]'), ('Bob Johnson', '[email protected]'); SELECT LAST_INSERT_ID(); |
Это вставит три строки в таблицу users
и вернет последний AUTO_INCREMENT индентификатор, который был присвоен при вставке первой строки. Если вы хотите получить индентификаторы для каждой вставленной строки, вы можете использовать функцию LAST_INSERT_ID() внутри многострочного INSERT, например:
1 2 3 4 5 6 |
INSERT INTO users (name, email) VALUES ('John Doe', '[email protected]'), ('Jane Smith', '[email protected]'), ('Bob Johnson', '[email protected]'); SELECT LAST_INSERT_ID(), LAST_INSERT_ID() - 1, LAST_INSERT_ID() - 2; |
Это вернет три значения, каждый из которых будет соответствовать индентификатору, присвоенному каждой вставленной строке в порядке, в котором они были вставлены.
@cloyd
Например, если первой вставленной строке был присвоен индентификатор 1, то последний запрос вернет значения 1, 0 и -1 соответственно.