SQLite3中自增主键归零方法
问题
SQLite没有其他数据库 TRUNCATE TABLE [TABLENAME]写法
清空只能使用
DELETE FROM [TABLENAME]
而使用 DELETE 自增主键不会归0,但SQLite提供了解决办法。
思路
当SQLite数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的系统表。
通过以下查询可以看到表内容
SELECT * FROM sqlite_sequence;
可以看到这个表包含两列:name和seq。name记录自增列所在的表,seq记录当前序号(下一条记录的编号就是当前序号加1)。
解决办法
可以利用更新sqlite_sequence的方式,将自增主键归零。
UPDATE sqlite_sequence SET seq = 0 WHERE name='TableName';
如果想要将所有表的自增主键归零,直接清空sqlite_sequence表。
DELETE FROM sqlite_sequence;