SQLite Truncate Table
在 SQLite 中,並沒有 TRUNCATE TABLE 命令,但可以使用 SQLite 的 DELETE 命令從已有的表中刪除全部的數據。
語法
DELETE 命令的基本語法如下:
sqlite> DELETE FROM table_name;
但這種方法無法將遞增數歸零。
如果要將遞增數歸零,可以使用以下方法:
sqlite> DELETE FROM sqlite_sequence WHERE name = 'table_name';
當 SQLite 資料庫中包含自增列時,會自動建立一個名為 sqlite_sequence 的表。這個表包含兩個列:name 和 seq。name 記錄自增列所在的表,seq 記錄當前序號(下一條記錄的編號就是當前序號加 1)。如果想把某個自增列的序號歸零,只需要修改 sqlite_sequence 表就可以了。
UPDATE sqlite_sequence SET seq = 0 WHERE name = 'table_name';
實例
假設 COMPANY 表有如下記錄:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
下麵為刪除上表記錄的實例:
SQLite> DELETE FROM sqlite_sequence WHERE name = 'COMPANY'; SQLite> VACUUM;
現在,COMPANY 表中的記錄完全被刪除,使用 SELECT 語句將沒有任何輸出。