Проблема с откатом laravel в том, что идентификатор всегда увеличивается, даже если множественная вставка в БД не удалась.
Например, я использую транзакцию laravel для вставки двух моделей. Последний идентификатор модели 1 равен 5, а последний идентификатор модели 2 равен 10, при запуске обычной транзакции результатом будет вставленный объект из модели 1 — 6, а для модели 2 — 11.
Для второй вставки вставляется модель 1, а новый идентификатор равен 7, но вставка модели 2 не удалась, поэтому произойдет откат, но следующая вставка для модели 1 будет 9, а не 8, даже если она не удалась.
Хорошо, проблема в том, что идентификатор в БД (Mysql, движок innoDB) увеличивается, но это должно быть решение, когда он также откатывает идентификатор.
Кто-нибудь знает, как решить эту проблему? Спасибо.
Если во вставке есть исключение, оно будет записано в файл журнала, поэтому нет необходимости прыгать по значению идентификатора в БД (который большой).
Это поведение базы данных по умолчанию, а не специфичное для laravel, это и это должны ответить на ваш вопрос.
Спасибо @Remul, это было полезно. Идея ясна, это поведение базы данных по умолчанию.






Почему это проблема?