gpt4 book ai didi

mysql - 是否可以将自增主键值更新为mysql表的空值

转载 作者:行者123 更新时间:2023-11-29 11:41:51 25 4
gpt4 key购买 nike

这是我的表,其 id 字段为无符号tinyint 主键,具有 NOT NULL 和 AUTO_INCRMENT。

+----+
| id |
+----+
| 1 |
| 4 |
|254 |
|255 |
+----+

我的应用程序是嵌入式应用程序,因此我使用小型数据类型,例如tinyint。我的 id 值总数不会达到 255。但是如果中间值被删除多次,那么插入新的 id 值迟早会达到 255。

我有一些问题,

是否可以设置自动增量功能,以便将新的 id 插入不存在的更大值(此处为 2)?

如果不是,请建议某种方法来处理此问题,而不是使用更高的 id 数据类型并在删除 id 后更新更高的 id 值(例如,如果我删除 id = 2,则将所有大于 2 的 id 值更新为 id- 1 以便在插入新值时所有值保持顺序)。

最佳答案

附加要插入的字段。这将使用最低的免费 ID

INSERT INTO ai (id) (
SELECT a.id+1 FROM ai a
LEFT JOIN ai b ON a.id+1 = b.id
WHERE b.id IS NULL LIMIT 1
)

或者也得到 1

   SELECT a.id+1 FROM (
SELECT 0 AS id UNION SELECT id FROM ai
) AS a
LEFT JOIN ai b ON a.id+1 = b.id
WHERE b.id IS NULL
ORDER by a.id ASC
LIMIT 1;

关于mysql - 是否可以将自增主键值更新为mysql表的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35652987/

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