2010-06-26 13 views

risposta

20

In SQLite è presente una tabella denominata SQLITE_SEQUENCE, che tiene traccia del più grande valore RowId di una tabella. Puoi inserire, aggiornare ed eliminare su questa tabella. Ad esempio, per simulare una funzionalità simile come il TRUNCATE TABLE istruzione SQL Server si potrebbe qualcosa come:

DELETE FROM MyTableName; 
DELETE FROM SQLITE_SEQUENCE WHERE NAME = 'MyTableName'; 

Nell'esempio di cui sopra tutti i dati dal MyTableName viene rimosso e l'identificativo di incremento automatico viene ripristinato rimuovendo il valore dal Tabella SQLITE_SEQUENCE. Consultare la documentazione per AUTOINCREMENT per ulteriori informazioni.

+0

Grazie, ha funzionato perfettamente. Bastava aggiungere un punto e virgola alla fine di ogni riga. – Mun

+0

Viene visualizzato un messaggio di errore "no tabella SQLITE_SEQUENCE' ... – dialex

3
DELETE 
FROM MyTableName 

select * 
from SQLITE_SEQUENCE 

update SQLITE_SEQUENCE 
set seq = 0 
where name ='MyTableName'