mySQL自动增量不适应数据库中的更改

mySQL自动增量不适应数据库中的更改,mysql,Mysql,所以我的主键上有自动递增。我的印象是,如果我有: 一,。 2. 3. 四, 除去两个,我不会以这个结束: 一,。 3. 四, 而是: 一,。 2. 三, 这不是自动递增的功能吗?如果是这样的话,我想实现什么,我该怎么做?如果从一组1,2,3,4中删除2,最终得到1,3,4-这会保持每个记录的标识功能,即其主键完整,如果你仔细想想,这是一件好事:想象一个用户在删除2的同时单击删除3,因此,在删除3的过程中更改其含义 如果要选择一个连续的数字和一些行,请使用 SELECT -- fieldlis

所以我的主键上有自动递增。我的印象是,如果我有:

一,。 2. 3. 四,

除去两个,我不会以这个结束:

一,。 3. 四,

而是:

一,。 2. 三,


这不是自动递增的功能吗?如果是这样的话,我想实现什么,我该怎么做?

如果从一组1,2,3,4中删除2,最终得到1,3,4-这会保持每个记录的标识功能,即其主键完整,如果你仔细想想,这是一件好事:想象一个用户在删除2的同时单击删除3,因此,在删除3的过程中更改其含义

如果要选择一个连续的数字和一些行,请使用

SELECT
  -- fieldlist
  @num:=@num+1 AS rownum
FROM 
  -- table
  , (SELECT @num:=0) AS init
WHERE
 -- ...

你的印象是错误的。数据库不会重新计算自动递增ID的值。如果它这样做了,那么所有的外键关系都将是错误的。我想实现的是什么,我该怎么做?为什么你希望PK首先是连续的无间隙数?1有什么问题;3.4.PK值?我如何重新计算密钥的值?有这样的查询吗?如果不是,我想我甚至不会使用自动递增?我有一个表显示条目。用户可以输入7,然后单击按钮。然后删除表上的第7行。所以我需要连续的数字。@tyler5819:如果用户输入99999999怎么办?你会展示什么?它的使用方式,这不是问题。现在,该查询会重新编号主键还是?它不会重新编号PK,我强烈建议您这样做。您应该显示rownum,但可能会使真实的PKs不可见。当用户输入7时,您选择了第7个实PK并使用它删除记录。或者,如果用户想要删除第5个条目,是否有查询将选择数据库中当前的第5个条目?有:按{与原始表相同的顺序}从表顺序选择primarykeyfield第五行限制为5,1。@tyler5819:为什么您的用户依赖订单而不是实际的PK值?如果您尝试删除此问题-stackoverflow将重新请求question.id=23353617删除,而不是问题4242删除。