Se hai un vincolo di chiave esterna, come puoi eliminare una riga dalla tabella A quando la tabella B fa riferimento a quella riga? Mi sembra un errore.
Indipendentemente da ciò, è possibile evitare il riutilizzo dei valori di incremento automatico reimpostando l'offset all'avvio dell'applicazione. Richiedere il massimo in tutte le tabelle che fanno riferimento alla tabella A, quindi modificare la tabella al di sopra di tale massimo, ad es. se il massimo è 989, usa questo:
alter table TableA auto_increment=999;
Fai anche attenzione che diversi motori MySQL hanno un comportamento di incremento automatico diverso. Questo trucco funziona per InnoDB.