2010-06-26 7 views

Antwort

20

In SQLite gibt es eine Tabelle namens SQLITE_SEQUENCE, die den größten RowId Wert, den eine Tabelle hat, verfolgt. Sie können einfügen, aktualisieren und löschen in dieser Tabelle. Zum Beispiel, eine ähnliche Funktionalität wie der TRUNCATE TABLE-Anweisung SQL Server imitieren Sie könnte so etwas wie:

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

Im obigen Beispiel werden alle Daten von MyTableName entfernt wird, und das Autoinkrement Rowid wird durch Entfernen des Wertes aus dem Reset SQLITE_SEQUENCE Tabelle. Weitere Informationen finden Sie in der Dokumentation für AUTOINCREMENT.

+0

Danke, das hat perfekt funktioniert. Ich musste nur ein Semikolon am Ende jeder Zeile hinzufügen. – Mun

+0

Ich bekomme eine Fehlermeldung, die besagt, dass 'keine solche Tabelle SQLITE_SEQUENCE' ... – dialex

3
DELETE 
FROM MyTableName 

select * 
from SQLITE_SEQUENCE 

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