Mengapa MySQL AUTO_INCREMENT Tidak Terjejas Oleh Rollback
Medan AUTO_INCREMENT MySQL mengekalkan nilai unik tanpa mengira status transaksi. Tingkah laku ini berpunca daripada senario berikut:
Senario:
Masalah:
Menuntut semula nilai 557 selepas pemulangan semula mencipta beberapa isu yang tidak dapat diselesaikan:
Akibat:
Atas sebab ini, nombor jujukan Oracle juga beroperasi secara bebas daripada transaksi.
Penyelesaian:
Jika mengekalkan nilai kenaikan automatik tanpa celah adalah pengembalian transaksi yang penting tidak boleh digunakan. Sebaliknya, bendera status boleh ditambahkan pada rekod:
Penyelesaian ini memperkenalkan cabarannya sendiri tetapi menyediakan cara untuk mengekalkan jejak audit sambil mengelakkan jurang kenaikan automatik.
Atas ialah kandungan terperinci Mengapa AUTO_INCREMENT MySQL Tidak Ditetapkan Semula Selepas Rollback?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!