SQLite清空表數(shù)據(jù)并將自增量歸零

在普通的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)化也可以使它運行的很快。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容