MySQL在ID之间插入

时间:2013-07-22 00:46:10

标签: mysql insert

如果我的数据库包含以下信息,如何设置下一个INSERT查询以填写ID? (在这种情况下它是5。)

enter image description here

基本上,一旦达到24,它将继续按顺序插入(例如:30,31,32)

3 个答案:

答案 0 :(得分:2)

你没有。不管怎么说都没有自动递增的整数。

您可以将列更改为不是自动递增的整数,但是您需要在执行每个插入之前确定下一个ID,这会使所有INSERT个查询不必要地复杂且代码更多难以维持。如果多个线程试图插入并且查找下一个ID并插入记录的操作不是完全原子的,那么更不用说引入一个重要的失败点。

为什么你甚至需要这个?数据库生成的主键整数没有理由像这样连续。它的目的是独一无二,只要它能达到这个目的,它就能发挥作用。没有必要“填补先前删除的记录留下的空洞”。

可以向数据库添加不同的列,并在该列上插入记录时执行查找下一个连续数字的逻辑。但是你仍然遇到上述相同的竞争条件和不必要的复杂问题。

答案 1 :(得分:1)

将您的文件名更改为比id更有意义的内容。

我觉得files/uploads/20130515_170349.wv(第一行)之类的东西很有意义(假设你每秒没有多个文件。

这也有一个优点,即按字母顺序排序文件名是按时间顺序排列的,这样可以更容易地查看较新和较旧的文件。

答案 2 :(得分:0)

你可以给它我的字段和值

插入表格(我等等)值(5等等);

但我认为你不能动态地做到这一点。如果我是自动增量,那么它将继续增加是否已删除先前的元组等。