Mekanisme auto_increment diperlukan untuk menghasilkan unik nilai, yang lebih besar dari nilai apa pun yang telah dihasilkan sebelumnya. Itu tidak menjamin untuk menghasilkan berturut-turut nilai.
Ada beberapa diskusi tentangnya di sini:https://bugs.mysql.com/bug. php?id=57643
Ada sedikit kepentingan dalam menghasilkan nilai berurutan dengan setia, karena nilai apa pun bisa "hilang" karena alasan lain:
- MASUKKAN Anda gagal, misalnya karena melanggar batasan seperti KUNCI UNIK atau KUNCI ASING.
- Anda mengembalikan transaksi untuk INSERT Anda.
- Anda berhasil dan komit, tetapi kemudian baris tersebut DIHAPUS oleh Anda atau sesi lain.
Nilai penyertaan otomatis tidak dikembalikan ke antrean apa pun, karena sesi serentak lainnya mungkin telah menghasilkan nilai id lebih lanjut untuk sementara. Tidaklah layak InnoDB mempertahankan kumpulan nilai id yang tidak terisi, karena kumpulan itu bisa menjadi besar dan boros.
Juga, mungkin tepat untuk "kehilangan" nilai ID, atau seseorang akan berpikir bahwa baris yang mereka maksud untuk DELETE entah bagaimana kembali.