Php mySQL主键异常

Php mySQL主键异常,php,mysql,Php,Mysql,我有一个脚本,它将数据插入表中,然后在插入新数据时,它会删除以前的记录,并插入当前数据集 唯一的问题是主键被破坏了 e、 g.前四排 1 2 3 4 然后当我删除这些并输入新数据时 5 3 4 6 注:以上数字表示主键id自动递增 为什么增量几乎被搞糊涂了?自动增量数字不被搞糊涂了。他们是独一无二的,这是他们唯一的目的 如果您选择了数据,则数据库将尽可能快地获取记录,如果您未指定特定顺序,则记录将以不可预测的顺序返回 这意味着如果你指定 select * from your_table or

我有一个脚本,它将数据插入表中,然后在插入新数据时,它会删除以前的记录,并插入当前数据集

唯一的问题是主键被破坏了

e、 g.前四排

1
2
3
4
然后当我删除这些并输入新数据时

5
3
4
6
注:以上数字表示主键id自动递增


为什么增量几乎被搞糊涂了?

自动增量数字不被搞糊涂了。他们是独一无二的,这是他们唯一的目的

如果您选择了数据,则数据库将尽可能快地获取记录,如果您未指定特定顺序,则记录将以不可预测的顺序返回

这意味着如果你指定

select * from your_table
order by id

然后这些记录的数字会递增。如果你删除了记录,那么GAB就不会被填满

如果要重新启动数字,请使用
truncate table
而不是
delete
。这会将计数器重置为0:

truncate table <your table here>;
截断表;

除非您的删除也重置了自动增量值,否则这应该是不可能的?为什么不改为
truncate
呢?他的3和4被“回收”,这应该是不可能的。我知道:)但是mysql是同步的,对吗?因此,如果您运行一个查询来更新一组记录,那么它们会一个接一个地执行?@Aiden:是的,记录会一个接一个地更新。但如果你也没有指定订单,那么你就不能说哪一个将首先更新。@Dagon:我怀疑这是真的。可能只是误会。