Jeśli masz ograniczenie klucza obcego, jak możesz usunąć wiersz z tabeli A, gdy tabela B odwołuje się do tego wiersza? Wydaje mi się to błędem.
Niezależnie od tego możesz uniknąć ponownego użycia wartości automatycznego zwiększania, resetując przesunięcie podczas uruchamiania aplikacji. Zapytaj o maksimum we wszystkich tabelach, które odnoszą się do tabeli A, a następnie zmień tabelę powyżej tego maksimum, np. jeśli maksimum to 989, użyj tego:
alter table TableA auto_increment=999;
Uważaj również, że różne silniki MySQL mają różne zachowanie auto-inkrementacji. Ta sztuczka działa w przypadku InnoDB.