Information om en tabell lagras på två ställen:
- Serveromfattande table.frm-fil
- Lagringsmotorspecifik InnoDB-ordbok
Dessa två måste vara synkroniserade, men det finns ingen pålitlig mekanism för att upprätthålla denna konsekvens. På grund av flera orsaker hamnar InnoDB-ordboken ur synk.
I ditt fall finns det en föräldralös post i ordboken. Du måste ta bort den.
InnoDB tillhandahåller inget sätt att manuellt ändra ordboksposterna. Men du kan skapa en falsk table.frm (om innodb_file_per_table=ON så table.ibd också)-filer, lägg den i databaskatalogen och släpp tabellen.
Gamla versioner av InnoDB kan klaga på att SPACENO inte matchar. Kontrollera sedan hur du fixa InnoDB-ordbok