InnoDB đặt lại trường auto_increment khi bạn khởi động lại cơ sở dữ liệu.
Khi khởi động lại InnoDB, nó sẽ tìm giá trị cao nhất trong cột và sau đó bắt đầu từ đó.
Điều này sẽ không xảy ra trong MyISAM vì nó lưu vào bộ nhớ cache id tăng cuối cùng.
Cập nhật
Tính năng / lỗi này đã xuất hiện từ năm 2003 và có thể dẫn đến các vấn đề nghiêm trọng. Lấy ví dụ bên dưới,
-
Bảng t1 có khóa chính tự động nhập.
-
Bảng t2 có một cột cho khóa chính trong t1 không có "ràng buộc" khóa ngoại. Nói cách khác, khi một hàng bị xóa ở t1, các hàng tương ứng ở t2 sẽ không có.
-
Như chúng ta đã biết với khởi động lại InnoDB, một id có thể được cấp lại. Do đó, các hàng mồ côi trong t2 có thể được liên kết sai với các hàng mới trong t1.