Допустим, мы получаем следующие данные из CSV-файла:
account_number balance customer name
100 500.00 GERN BLANSTON
101 800.00 GERN BLANSTON
102 200.00 OPRAH WINFREY
Это две учетные записи, принадлежащие Герн Бланстон, и одна учетная запись, принадлежащая Опре Уинфри.Теперь предположим, что у нас есть таблица customer
и таблица account
.Мы могли бы гипотетически вставить данные, используя только два INSERT
утверждения:
INSERT INTO customer
(name)
VALUES
('GERN BLANSTON'),
('OPRAH WINFREY')
и
INSERT INTO account
(account_number, balance, customer_id)
VALUES
(100, 500.00, ???),
(101, 800.00, ???),
(102, 200.00, ???)
Если бы мы знали идентификаторы для Джерна Бланстона и Опры Уинфри, мы, конечно, могли быэти идентификаторы во втором операторе INSERT
, и он будет работать нормально.Но так или иначе, нам нужно получить эти идентификаторы.
Мой вопрос: есть ли быстрый способ узнать или хотя бы отследить идентификаторы каждого добавленного клиента?Вставка каждой строки отдельно, а затем получение LAST_INSERT_ID()
слишком медленное для меня (у меня до 65 000 учетных записей в каждом файле CSV).Поиск идентификатора клиента каждый раз, когда я вставляю новую учетную запись, также слишком медленный.
Или, если вы хотите обойти этот конкретный вопрос и порекомендовать другое решение, я тоже открыт для этого.Я использую MySQL.