SQLite Truncate Table
sqlite truncate table
在 sqlite 中,并没有 truncate table 命令,但可以使用 sqlite 的 delete 命令从已有的表中删除全部的数据。
1. 语法
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 语句将没有任何输出。