MySQL,自动递增序列?

时间:2011-08-10 12:23:17

标签: mysql auto-increment

在已设置为AUTO_INCREMENT的MySQL数据库列中,我可以假设这些值将始终按顺序创建吗?

例如,如果插入10行并接收值1,2,3,... 10,然后删除3,我可以假设插入的下一行将收到11吗?

我问的原因是我想根据它们插入表中的顺序对值进行排序,如果我可以根据自动递增的主键进行排序,那么它会更容易一些。

2 个答案:

答案 0 :(得分:2)

根据我对手册的理解;是。每个表都有自己的“下一个自动增量值”,它增加了auto_increment_increment(http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html#sysvar_auto_increment_increment)中定义的数量,并且永远不会自动重置,即使它可以手动重置。但正如@miku所说,如果可能的话,时间戳会更好。

答案 1 :(得分:1)

我见过auto_increment主要用于主键列。如果要按照date_added对项目进行排序,则应创建一个额外的时间戳,日期/日期时间或整数(纪元)列。

通过这种方式,您可以明确且更容易理解您的意图 - 您也可以安全地迁移,导出和导入数据库,而无需担心如何处理auto_increment