Citerar från manualsidan för INSERT :
INSERT IGNORE
syntax är bara ett sätt att undertrycka vissa felmeddelanden och det är användbart när du är medveten om att dessa fel kan inträffa och/eller vill hantera dem i ett senare skede. Bakom kulisserna har du fortfarande en vanlig insats, förutom att den misslyckas på grund av en bruten nyckel. MySQL behöver de faktiska radvärdena för att göra en infogning och AUTO_INCREMENT-räknaren kommer att öka enligt vanliga regler
:
- Värdet för kolumnen är NULL.
- Värdet för kolumnen är inte angivet.
- Värdet för kolumnen är större än räknaren.
Så om du inte kan tänka om din logik (t.ex. testa om nyckelvärdena finns innan du gör insättningen), är det enda sättet att återställa räknaren är ÄNDRA TABELL :
ALTER TABLE t2 AUTO_INCREMENT = value;