gpt4 book ai didi

针对特定情况的 MySQL 计数器

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

我需要生成唯一的“ids”,问题是,它只能在 1 - 99999 之间。

“好”的是,它仅在与另一列组合时必须是唯一的。

我们有组,每个组都有自己的“group_id”,每个组都需要类似 unique('group_id', 'increment_id')

现在 99999 条记录对于每个组来说足够使用几年,但对于所有组来说还不够,因此我不能只使用 AUTO_INCRMENT 创建表并插入其中记录并获取其自动增量。

例如,如果我需要第一组 5 条记录和第二组 3 条记录,我想得到如下结果:

group_id, increment_id
1, 1,
1, 2,
1, 3,
1, 4,
1, 5,
2, 1
2, 2,
2, 3

此外,冲突不是一个选项,因此,如果以编程方式完成,使用“长度”之类的东西可能会很棘手(即一次可能有 10 个请求,每个请求首先选择给定 group_id 的长度,然后尝试创建10 行具有相同的increment_id)

但是我在想 - 如果我将其设置为 count 的子选择的值,那么它总是“ok”?

最佳答案

您可以创建一个名为 counters 的辅助表来管理它:

表:计数器列:group_id、current_counter

每次插入行increment_id = select max(increment_id)+1 from table_xxx where group_id = group_xxxx

关于针对特定情况的 MySQL 计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42399816/

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