SQL主键重置?

时间:2014-11-16 20:20:28

标签: php mysql sql mysqli

我有一个带有主键的数据库,每当我添加一行时,它会记住以前的主键,即使我删除了行,还有一些图像可以更好地解释我想要修复的内容,如果可能的话:
1。http://i.imgur.com/RVjbXur.png
2。http://i.imgur.com/6VgG2G3.png
你看下面香港专业教育学院删除了包含TEST(表中唯一的一行)的行,然后添加了2个新行。即使行不再存在,新的继续使用主键,有没有办法让它忘记它或重置它,所以每当数据库运行时,ID都会在1-2-3等组织。

3 个答案:

答案 0 :(得分:2)

这与Primary Key没有任何关系。您所指的是auto increment。主键不必是整数,甚至不是自动值(自动增量) - 尽管不像其他数据类型那样使用主键,但它是可用的。

自动增量设计为递增,它永远不会使用可能被删除的先前键。

重置它通常不是一个好主意,但您可以通过删除和重新创建表格或使用

ALTER TABLE tablename AUTO_INCREMENT = 1

如果您想维护一个没有洞的单独列,可以使用trigger来完成此操作。

答案 1 :(得分:0)

您需要dropcreate表将主键重置为1或0,具体取决于DBMS。

答案 2 :(得分:0)

如果是MyISAM表,您可以使用此ALTER TABLE table_name AUTO_INCREMENT = 1;重置primary_key。如果表中包含某些行,则会为该primary_key设置下一个数字(在该表中的最后一个id之后)。

您可以在最后INSERT

添加ON DUPLICATE KEY UPDATE ID=LAST_INSERT_ID(ID)语句此部分