Ich verwende mysql (5.0.32-Debian_7etch6-log) und ich habe eine nächtliche Bulk Load laufen php (5.2.6) Skript (unter Verwendung von Zend_DB (1.5.1) über PDO), die Folgendes tut:
- Abschneiden eines Satzes von 4 "Import"-Tabellen
- Masseneinfügung von Daten in diese 4 "Import"-Tabellen (Wiederverwendung von IDs, die zuvor ebenfalls in den Tabellen waren, aber ich habe die gesamte Tabelle abgeschnitten, also sollte das kein Problem sein, richtig?)
- wenn alles gut geht, benennen Sie die "live"-Tabellen in "temp", die "import"-Tabellen in "live" und dann die "temp"-Tabellen (die alten "live"-Tabellen) in "import" um
Das hat wochenlang gut funktioniert. Jetzt erhalte ich gelegentlich diese Meldung, irgendwo in der Mitte des gesamten Massenladevorgangs:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '911' for key 1
Beachten Sie, dass dies nicht die erste ID ist, die bereits vor der Kürzung in der Tabelle war. Wenn ich das Skript einfach manuell erneut starte, funktioniert es einwandfrei.
Irgendwelche Ideen? Übrig gebliebene Indizes, vielleicht etwas, das mit der Umbenennung zu tun hat?
Und wenn ich danach in der Tabelle nach einem Eintrag mit der ID 911 suche, ist er nicht einmal vorhanden.