Stanie się tak, jeśli tabela zawiera istniejący rekord o identyfikatorze 0 (lub ujemnym). Zaktualizowanie wszystkich istniejących rekordów tak, aby używały wartości dodatnich, pozwoli na ustawienie auto_increment w tej kolumnie.
Edycja:Niektórzy pytali, jak to 0 się tam dostało. Dla wyjaśnienia, MySQL Reference Manual stwierdza, że „Dla typów liczbowych wartością domyślną jest 0, z wyjątkiem tego, że dla typów całkowitych lub zmiennoprzecinkowych zadeklarowanych z atrybutem AUTO_INCREMENT wartością domyślną jest następna wartość w sekwencji”. Tak więc, jeśli wykonałeś wstawianie w tabeli bez podania wartości dla kolumny numerycznej przed włączeniem auto_increment, podczas wstawiania zostanie użyte domyślne 0. Więcej szczegółów można znaleźć na https://dev .mysql.com/doc/refman/5.0/en/data-type-defaults.html .