Ако имате ограничение за външен ключ, как можете да изтриете ред от таблица A, когато таблица B препраща към този ред? Това ми изглежда като грешка.
Независимо от това, можете да избегнете повторното използване на стойности за автоматично увеличение, като нулирате изместването, когато приложението ви стартира архивиране. Потърсете максимума във всички таблици, които препращат към таблица А, след което променете таблицата над този максимум, напр. ако максимумът е 989, използвайте това:
alter table TableA auto_increment=999;
Също така имайте предвид, че различните MySQL двигатели имат различно поведение на автоматично увеличение. Този трик работи за InnoDB.