Vi a mesma mensagem de erro em uma tabela com uma chave bigint (20) e observei a saída de
mysql>show table status like 'my_big_table';
Mostrou:
Auto_increment: 0
quando deveria ter sido:
Auto_increment: 2157452851
(como a última linha inserida tinha um valor de chave de 2157452850)
Não houve explicação de por que o Auto_increment foi para um valor de 0, mas bloqueou inserções por nosso aplicativo.
Eu tentei fazer o ALTER TABLE
para alterar o valor Auto_increment, mas era aparente que a tabela inteira seria reconstruída, o que em uma tabela desse tamanho teria levado muitas horas, então cancelei o alter. / p>
A solução que encontrei foi adicionar explicitamente uma linha com o próximo valor de chave:
mysql> INSERT INTO 'my_big_table' VALUES (2157452851,22808084,71,36376,'2013-03-16 15:09:55','2013-03-16 15:07:18','2013-03-16 15:09:55','Sent',NULL,7426);
Query OK, 1 row affected (0.03 sec)
Isso corrigiu o valor Auto_index.
mysql> show table status like 'my_big_table'\G
Auto_increment: 2157452852
Espero que isso ajude alguém.