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