SQLite tiene traccia del più grande ROWID che una tabella abbia mai tenuto utilizzando una tabella interna denominata "sqlite_sequence". La tabella sqlite_sequence viene creata e inizializzata automaticamente ogni volta che viene creata una tabella normale che contiene una colonna AUTOINCREMENT **. Il contenuto della tabella sqlite_sequence può essere modificato utilizzando le normali istruzioni UPDATE, INSERT e DELETE **. Tuttavia, apportare modifiche a questa tabella probabilmente perturba l'algoritmo di generazione chiavi AUTOINCREMENT. Assicurati di sapere cosa stai facendo prima di intraprendere tali cambiamenti.
Quindi, quando si elimina il tavolo e si ri-crea, si dovrebbe fare il riavvio SQLITE_SEQUENCE da 0.
Si dovrebbe fare qualcosa di simile:
Delete from date_difference;
Delete from sqlite_sequence where name='date_difference';
cura perché il campo 'table name'
in dove clausola è case sensitive.
Leggi this per ulteriori informazioni.
fonte
2012-12-10 10:08:38