重置SQLite3/MySQL中的行数计数
我正在使用 SQLite3。我使用整数作为主 ID 加载一个包含 30 行的表,并且它会自动递增。
现在,我从表中删除所有行,然后将一些新信息重新加载到表中。
问题是:行计数(我的 PrimaryID)现在从 31 开始。有什么方法可以让我从数字 1 开始加载新行吗?
I am using SQLite3. I load a table with say 30 rows using integer as Primary ID and it auto-increments.
Now I delete all the rows from the table and then, reload some new information onto the table.
Problem is: the row count (my PrimaryID) now starts with 31. Is there any way that I can start loading new rows from the number 1 onwards?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
SQLite
使用:
文档
找到答案:SQLite Reset Primary Key Field
MySQL
使用:
无论哪种情况,数据库不关心 id 号是否是连续的 - 只关心值是唯一的。如果用户永远看不到主键值(他们不应该看到,因为数据可以更改并且不会始终处于该主键值),我不会为这些选项而烦恼。
SQLite
Use:
Documentation
Found the answer on SO: SQLite Reset Primary Key Field
MySQL
Use:
In either case, the database doesn't care if the id numbers are sequencial - only that the values are unique. If users never see the primary key value (they shouldn't, because the data can change & won't always be at that primary key value), I wouldn't bother with these options.
对于 MySQL:
使用
TRUNCATE TABLE tablename
清空表(删除所有记录)并重置自动递增计数。如果您只想重置计数,也可以使用
ALTER TABLE tablename AUTO_INCRMENT = 0;
。对于 SQLite:
参考资料
SQLite 自动增量
MySQL 自动增量
For MySQL:
Use
TRUNCATE TABLE tablename
to empty the table (delete all records) and reset auto increment count.You can also use
ALTER TABLE tablename AUTO_INCREMENT = 0;
if you just want to reset the count.For SQLite:
References
SQLite AutoIncrement
MySQL AutoIncrement
对于SQLite使用(不需要删除和创建表)
对于MySql使用
For SQLite use (not need to delete and create the table)
For MySql use
在这种情况下,您不应使用
AUTOINCRMENT
。只需将主键定义为INTEGER PRIMARY KEY
,在执行DELETE FROM
查询后计数将重置为 1。如果没有 AUTOINCRMENT,只要表中的空间没有用完,默认行为仍然是主键的自动增量(在这种情况下,旧的已删除值将被重用)。更多信息请参阅SQLite 自动增量文档。
You should not use
AUTOINCREMENT
in this case. Simply define your primary key asINTEGER PRIMARY KEY
and the count will be reset to 1 after aDELETE FROM
query. Without AUTOINCREMENT, the default behaviour will still be an automatic increment of the primary key as long as you don't run out of space in your table (in that case, old - deleted - values will be reused).More information available in the SQLite Autoincrement document.