我正在使用sqlite3.我使用整数作为主ID加载一个说30行的表,并且它自动递增.
现在我从表中删除所有的行,然后重新加载一些新的信息到表上.
问题是:行数(我的PrimaryID)现在以31开头.有没有办法可以从1号起开始载入新行?
sqlite的
使用:
DELETE FROM your_table; DELETE FROM sqlite_sequence WHERE name = 'your_table';
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的答案
使用:
ALTER TABLE tbl AUTO_INCREMENT = 1;
在这两种情况下,数据库不关心ID号是否是顺序的 – 只有值是唯一的.如果用户从未看到主键值(他们不应该,因为数据可能会改变并不总是在该主键值),我不会打扰这些选项.