gpt4 book ai didi

mysql - 强制添加未使用旧删除行的 auto_increment ID 的新行

转载 作者:行者123 更新时间:2023-11-29 06:56:37 26 4
gpt4 key购买 nike

举个例子:

id (auto_increment)   user
1 John
2 Mary
10 Christopher

如何强制查询添加未使用 ids 的新 users? :在我们的例子中,从 3 到 9:

最佳答案

您可以通过将要插入的记录的 ID 设置为表的第一个“缺失”ID 值,使用一些聪明的 SQL 来完成此操作:

INSERT INTO myTable (id, user) 
VALUES
(
(SELECT MIN(mt2.id)+1 from myTable mt2 WHERE NOT EXISTS
(SELECT 'Y' from myTable mt3 where mt3.Id = mt2.id + 1)),
'New User Name'
)

您可能无法在一个查询中执行此操作,具体取决于 DBMS。这种方法也几乎使 Id 列成为“自动生成”列变得无用;这个插入总是会找到没有 ID 的最小值,无论身份生成器是否会尝试使用这个值,而且在插入到表之前,你几乎总是必须启用“身份插入”,所以永远不会使用此表上的自动生成功能。

关于mysql - 强制添加未使用旧删除行的 auto_increment ID 的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12356592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com