重置SQLite3 / MySQL中的行号计数

我正在使用sqlite3.我使用整数作为主ID加载一个说30行的表,并且它自动递增.

现在我从表中删除所有的行,然后重新加载一些新的信息到表上.

问题是:行数(我的PrimaryID)现在以31开头.有没有办法可以从1号起开始载入新行?

sqlite的

使用:

DELETE FROM your_table;    
DELETE FROM sqlite_sequence WHERE name = 'your_table';

Documentation

sqlite keeps track of the largest ROWID that a table has ever held using the special sqlITE_SEQUENCE table. The sqlITE_SEQUENCE table is created and initialized automatically whenever a normal table that contains an AUTOINCREMENT column is created. The content of the sqlITE_SEQUENCE table can be modified using ordinary UPDATE,INSERT,and DELETE statements. But making modifications to this table will likely perturb the AUTOINCREMENT key generation algorithm. Make sure you kNow what you are doing before you undertake such changes.

找到了SO:SQLite Reset Primary Key Field的答案

MysqL

使用:

ALTER TABLE tbl AUTO_INCREMENT = 1;

在这两种情况下,数据库不关心ID号是否是顺序的 – 只有值是唯一的.如果用户从未看到主键值(他们不应该,因为数据可能会改变并不总是在该主键值),我不会打扰这些选项.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能