2012-06-20 25 views
5

tôi nhận được khoảng trống trong các phím tự động tăng của tôi, ngay cả vớithiếu sót Auto Increment khi sử dụng INSERT ... SELECT ngay cả với innodb_autoinc_lock_mode = 0

innodb_autoinc_lock_mode = 0 

tôi đã phân lập được vấn đề để một INSERT duy nhất ... câu lệnh SELECT . Về cơ bản, mỗi câu lệnh INSERT ... SELECT sẽ tăng số auto_increment của bảng lên một ngay cả khi không có chèn nào thực sự được thực hiện (khóa trùng lặp). Trong trường hợp của tôi, tôi sử dụng INSERT IGNORE, nhưng tôi đã kiểm tra không có và auto_increment vẫn tăng sai.

Tôi lo lắng về điều này bởi vì lệnh INSERT ... SELECT này chạy với tần số cao, do đó các phím đang phát triển nhanh chóng.

Tôi sẽ sống với nó nếu không có cách nào xung quanh, nhưng có cách nào để tránh hành vi này không?

Trả lời

0

Trông giống như một vấn đề phổ biến trong mysql. Cá nhân tôi chỉ sống với nó.

2

Đó là lỗi. Thấy điều này: http://bugs.mysql.com/bug.php?id=61058
... Bạn có thể tránh nó bằng cách sử:

ALTER TABLE `test` AUTO_INCREMENT = 1; 

sau mỗi insert...select Tuy nhiên nó không phải là ý tưởng rằng tốt vì alter table tạo tạm thời bảng, bản sao dữ liệu và vân vân ..

Các vấn đề liên quan