重置SQLite3 / MySQL中的行号计数

前端之家收集整理的这篇文章主要介绍了重置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相关文章