SQLite3中自增主键归零方法

问题

SQLite没有其他数据库 TRUNCATE TABLE [TABLENAME]写法

清空只能使用

DELETE FROM [TABLENAME]

而使用 DELETE 自增主键不会归0,但SQLite提供了解决办法。

思路

SQLite数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的系统表。

通过以下查询可以看到表内容

SELECT * FROM sqlite_sequence;

可以看到这个表包含两列:nameseqname记录自增列所在的表,seq记录当前序号(下一条记录的编号就是当前序号加1)。

解决办法

可以利用更新sqlite_sequence的方式,将自增主键归零。

UPDATE sqlite_sequence SET seq = 0 WHERE name='TableName';

如果想要将所有表的自增主键归零,直接清空sqlite_sequence表。

DELETE FROM sqlite_sequence;
posted @ 2020-12-27 16:13  大头和尚  阅读(452)  评论(0编辑  收藏  举报