id резервирование может быть сделано только безопасно, если у вас есть собственная реализация автоинкремента.Даже при выполнении транзакции вы не можете точно знать, каким будет следующий идентификатор.Вы просто можете быть уверены, что у вас есть, когда вы запросили это.
Некоторые люди используют mysql_insert_id , чтобы получить последний вставленный идентификатор.Но я где-то имею в виду, что эта функция не является поточно-ориентированной, и вы, вероятно, получите идентификатор другого только что вставленного потока.
Однако в вашем случае мне на ум приходят только два варианта:
1) создайте собственный генератор последовательностей 2) вставьте свой datarow, выберите его снова со всеми значениями в предложении where и используйте этот идентификатор.Запустите вариант 2 в транзакции (как уже было предложено выше)
Я бы выбрал вариант 1. Генерация последовательности обычно используется со всеми другими базами данных (насколько мне известно, только из mysql поддерживает автоинкремент, насколько я знаю),Следовательно, последовательности вполне приемлемы.
Приветствия, Кристиан