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 语句将没有任何输出。

下一节:sqlite 视图

sqlite教程

相关文章