При вставке данных в таблицу с автоматически увеличивающимся PK мне нужно получить этот ключ для использования в другом выражении. Как многие вопросы показывают на SO, это можно сделать в PHP с помощью mysql_insert_id()
.
Однако я группировал свои вставки вместе, поэтому я вставляю несколько строк за раз. Я сделал это, поскольку я догадался, что, вероятно, будет какая-то проблема с производительностью, пожалуйста, сообщите, если я ошибаюсь. В любом случае, насколько мне известно, mysql_insert_id()
возвращает только последний id, когда мне нужны идентификаторы для всех вставленных строк.
Думаю, в этом случае я мог:
-
Сделайте некоторые простые математические вычисления для вычисления всех идентификаторов с помощью
mysql_insert_id()
и количества введенных строк. Но гарантируется ли это, что это правильно? -
Используйте несколько операторов вставки, по одному для каждой строки
-
Создайте мои идентификаторы до и не используйте автоматическое увеличение.
Я уверен, что это должна быть классическая проблема, поэтому мне интересно, какие наиболее распространенные и целесообразные подходы.