Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:自动增量现在总是唯一的吗?_Mysql_Auto Increment - Fatal编程技术网

MySQL:自动增量现在总是唯一的吗?

MySQL:自动增量现在总是唯一的吗?,mysql,auto-increment,Mysql,Auto Increment,我已经在MySQL 3.23.23时代创建了代码 当时MySQL自动增量重用了最小发布的自动增量值 它可以产生 100101102103 删除101 101,104,105 我们使用特殊的表来生成id,通过锁定表,updateidtable SET id=id+1,其中key='table_name';选择id;解锁 根据mysql文档,这样的额外表格不再是必需的。但依靠MySQL自动增量的可靠性如何 自动增量行为特定于存储引擎吗? 它在SQL规范中有描述吗 这些ID非常重要,即使删除了旧记录,

我已经在MySQL 3.23.23时代创建了代码 当时MySQL自动增量重用了最小发布的自动增量值

它可以产生 100101102103

删除101

101,104,105

我们使用特殊的表来生成id,通过锁定表,
updateidtable SET id=id+1,其中key='table_name';选择id;解锁

根据mysql文档,这样的额外表格不再是必需的。但依靠MySQL自动增量的可靠性如何

自动增量行为特定于存储引擎吗? 它在SQL规范中有描述吗

这些ID非常重要,即使删除了旧记录,它们也必须增加并且是唯一的。(如购物车软件中的订单号)


可能问题正如卡兰坎所说

插入100101102103,104

删除104

插入104,105,106

10年前,MySQL中的AUTO_INCREMENT肯定有一些bug。 我们可以删除所有记录,但自动增量必须保留


这就是为什么我要问这个问题。

只要你不运行一个设置了自动增量=xx的查询,这应该是可靠的。我从来没有遇到过这样的问题。顺便说一下,我从第3版(第一次公开发行)开始就一直在使用MySQL,但从未发现您描述的行为。你有关于那个的链接吗?我找不到链接。我知道我们在10年前就遇到了这样的问题,现在我希望摆脱那些复杂的代码。修改运行了10年的代码是一个艰难的决定。最初我们使用自动增量,然后切换到锁