重置autoincrement主键sql,mysql

reset autoincrement primary key sql, mysql

本问题已经有最佳答案,请猛点这里访问。

我有这个表有1000行的帖子,其中id_post是主键设置为autoincrement

1
2
3
4
5
id_post | post
  1        hi1
  2        hi2
   ...
 1000     hi1000

我删除了从301到1000的行。所以我现在有一个从1到300的行列表。

1
2
3
4
5
id_post | post
  1        hi1
  2        hi2
   ...
 300     hi300

问题

当尝试添加新行时,id_post从1001开始,如何重置表并使其从301开始?


首先,我会留下差距。 如果你真的想要改变它,你可以使用:

1
2
3
 ALTER TABLE post AUTO_INCREMENT = 300;
 -- around 700 insterts
 ALTER TABLE post AUTO_INCREMENT = ?; -- where ? is max value of id_post

您可以截断该表以重置您的标识列。 像这样:

1
truncate table [table_name]

或者您可以使用CHECKIDENT命令:

1
  DBCC CHECKIDENT('table', RESEED, 0)