Отговорът е:е, зависи.
В случай на myisam отговорът е категорично да, тъй като последователностите на myisam вмъкват заявки.
В случай на innodb, обаче, поведението е конфигурируемо от mysql v5.1. преди v5.1, тогава отговорът за InnoDB също е да, след това зависи от innodb_autoinc_lock_mode
настройка. Вижте документацията на mysql за конфигурацията на InnoDB auto_increment за подробности
.
За да ви дадем най-важните моменти, има 3 innodb_autoinc_lock_mode
настройки:
- традиционен (0)
- последователно (1) - по подразбиране
- преплетени (2)
Допълнителни пропуски могат да бъдат опит в стойността на auto_increment, ако транзакцията е била върната назад. Обемната вложка може да бъде върната само като цяло.
АКТУАЛИЗИРАНЕ: Както е описано по-горе, ще получите сценарий 1) или 2) , ако използвате
- myisam table engine
- или innodb преди mysql v5.1
- или innodb с mysql v5.1 или по-нова и
innodb_autoinc_lock_mode
е 0 или 1
Няма начин да се разбере кое се вмъква първо.
Може да получите сценарий 3) или 4) ако използвате
- innodb с
innodb_autoinc_lock_mode
2
Отново няма начин да се каже как и защо mysql смесва реда на записите.
Така че, ако въпросът ви е свързан с факта, че вмъквате 3 записа с групово вмъкване и last_insert_id() връща стойността на auto_increment само на първия вмъкнат запис и искате да получите идентификаторите на другите 2 записа чрез просто добавяне е, че вие може да се наложи да проверите конфигурацията на mysql въз основа на използваната машина за таблица и версията на mysql.