Tôi đang sử dụng mysql (5.0.32-Debian_7etch6-log) và tôi có tải hàng loạt chạy hàng đêm php (5.2.6) kịch bản (sử dụng Zend_Db (1.5.1) qua PDO) mà hiện những điều sau đây:lỗi nhập trùng lặp mysql khi không có mục nhập trùng lặp (số lượng lớn tải qua php)
- cắt bỏ một bộ 4 'nhập khẩu' bảng
- số lượng lớn chèn dữ liệu vào các bảng 4 'nhập khẩu' (sử dụng lại các id đã có trước đây trong các bảng, nhưng tôi đã cắt ngắn toàn bộ bảng, do đó không phải là một vấn đề, phải ?)
- nếu mọi thứ suôn sẻ, đổi tên bảng 'sống' thành 'temp', các bảng 'nhập' thành 'sống' và sau đó các bảng 'tạm thời' (cũ 'sống') để 'nhập'
Điều này hiệu quả trong nhiều tuần. Bây giờ tôi thỉnh thoảng mới nhận được này, đâu đó ở giữa toàn bộ quá trình tải số lượng lớn:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '911' for key 1
tâm với bạn rằng, đây không phải là id đầu tiên mà đã được trong bảng trước khi cắt ngắn rồi. Khi tôi chỉ bắt đầu lại kịch bản theo cách thủ công, nó hoạt động như một sự quyến rũ.
Bất kỳ ý tưởng nào? còn lại chỉ mục, một cái gì đó để làm với đổi tên có thể?
Ngoài ra, khi tôi kiểm tra bảng cho một mục nhập với id 911 sau đó, nó thậm chí không ở trong đó.