我有一个带有主键的数据库,每当我添加一行时,它会记住以前的主键,即使我删除了行,还有一些图像可以更好地解释我想要修复的内容,如果可能的话:
1。http://i.imgur.com/RVjbXur.png
2。http://i.imgur.com/6VgG2G3.png
你看下面香港专业教育学院删除了包含TEST(表中唯一的一行)的行,然后添加了2个新行。即使行不再存在,新的继续使用主键,有没有办法让它忘记它或重置它,所以每当数据库运行时,ID都会在1-2-3等组织。
答案 0 :(得分:2)
这与Primary Key
没有任何关系。您所指的是auto increment
。主键不必是整数,甚至不是自动值(自动增量) - 尽管不像其他数据类型那样使用主键,但它是可用的。
自动增量设计为递增,它永远不会使用可能被删除的先前键。
重置它通常不是一个好主意,但您可以通过删除和重新创建表格或使用
ALTER TABLE tablename AUTO_INCREMENT = 1
如果您想维护一个没有洞的单独列,可以使用trigger
来完成此操作。
答案 1 :(得分:0)
您需要drop
和create
表将主键重置为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)
语句此部分