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 在auto inc/identity列中插入高于当前auto inc/identity值的值_Mysql_Auto Increment_Sql Insert - Fatal编程技术网

Mysql 在auto inc/identity列中插入高于当前auto inc/identity值的值

Mysql 在auto inc/identity列中插入高于当前auto inc/identity值的值,mysql,auto-increment,sql-insert,Mysql,Auto Increment,Sql Insert,细节 我在SE或MySQL文档中找不到有关此问题的任何信息 我遇到一种情况,可能需要插入一个高于当前值的auto inc值。例如,auto inc列当前为12&我需要插入一行,auto inc字段为15 问题 1-如果我只是简单地做这个插入,它会在auto inc达到15时发生冲突,还是下一个插入值从16开始?我的一个朋友告诉我后者是如何工作的。然而,在文档中,我遇到了一个声明,它会导致冲突。这样做之后,我是否需要将桌子重新设定为16 2-在这种情况下,什么是最佳实践 请告诉我是否需要提供任何其

细节

我在SE或MySQL文档中找不到有关此问题的任何信息

我遇到一种情况,可能需要插入一个高于当前值的auto inc值。例如,auto inc列当前为12&我需要插入一行,auto inc字段为15

问题

1-如果我只是简单地做这个插入,它会在auto inc达到15时发生冲突,还是下一个插入值从16开始?我的一个朋友告诉我后者是如何工作的。然而,在文档中,我遇到了一个声明,它会导致冲突。这样做之后,我是否需要将桌子重新设定为16

2-在这种情况下,什么是最佳实践


请告诉我是否需要提供任何其他信息。

据我所知,插入一个高于当前增量的值可以调整数据库中的
自动增量值。也就是说,插入20会将其设置为21。我相当肯定这种行为在MySQL的新版本中是一致的

您可以通过“显示创建表”查看当前的增量,只需尝试一下即可

1) 汽车公司将设置为16,它不会引起任何问题

2) 我认为最好的做法是让auto inc列单独工作,但如果不这样做,我看不出有任何问题。但是,如果列具有主键或唯一键,则如果该列的值已存在于数据库中,则插入该列的值可能会导致问题


希望有帮助

需要修改主键的场景意味着您的应用程序设计有问题。在这个世界上不存在这样一种情况:如果最后一个是12,那么必须插入15作为自动增量。如果你得出了必须这样做的结论或要求,你必须知道你做的事情是如此错误,以至于将来会让你头疼,以至于你会诅咒你提出的那一天。我建议你描述你真正的问题,而不是你提出的解决方案。我所说的问题就是我面临的问题。但是,您是正确的-这是部署错误的结果。我们意外地部署了一个具有开发数据库配置的站点。现在,我需要将db数据从开发人员传输到生产部门并保留关系。我知道如何简单地使用null作为id插入数据,等等。。我想知道如何解决我描述的情况。1)禁用标识,插入新值,将标识重新设定为新的高+增长因子2)最佳做法:改进质量保证/控制。不应该发生。:/我知道。。这肯定是工作流的问题。但是发生了什么,需要弄清楚。谢谢你的意见!谢谢这是我想听的。然而,我的朋友说了同样的话——“我认为/相当肯定”。由于这是任务关键,我想要更多的信心,因此我已经研究了一整天了!我们使用的是MySQL 5.5。你有多自信?你找到资源了吗?我正在努力寻找与此相关的文档。让我们这样说:我从未见过它在单主机、非集群系统中不以这种方式运行。如果您使用的是多主控、NDB或任何异国情调,那么所有赌注都是无效的。你可以试着自己测试一下,以确保它在你的平台上工作。塔德曼,你也许可以就更大的问题提供建议吗?非常感谢。我很抱歉,但是tadman击败了你:(+1)。也许对未来的观众了解哪个MySQL版本很有用这样做。该列是主键auto inc,因此描述的问题不应该是问题。哈哈,不用担心,很高兴它有帮助。我使用MySQL v5.6.20,但我真的不认为它取决于版本。如果在主键列中使用它,请小心使用正确的值