在普通的SQL中,實現(xiàn)如題所示的需求是通過truncate [tablename]來實現(xiàn),但是在SQLite中,是沒有truncate關鍵字的,所以SQLite不支持該語句。但是SQLite可以通過如下方式來實現(xiàn):
1)先清空表數(shù)據(jù):
delete from [tablename];
2)當數(shù)據(jù)庫中包含自增列時,會自動建立一個名為 sqlite_sequence 的表。這個表包含兩個列:name和seq。name記錄自增列所在的表(即tablename),seq記錄當前序號(下一條記錄的編號就是當前序號加1)。你可以通過如下方式將自增量歸零:
//1. 將表名為tablename的自增量置0
update sqlite_sequence set seq = 0 where name = 'tablename'
//2. 將表名為tablename的記錄刪除
delete from sqlite_sequence where name = 'tablename'
//3. 將sqlite_sequence表清空數(shù)據(jù)
delete from sqlite_sequence
雖然在普通的DBMS中,用delete不如用truncate快,但是SQLite對delete做了優(yōu)化,這個優(yōu)化也可以使它運行的很快。