【发布时间】:2017-07-12 23:51:09
【问题描述】:
我需要生成唯一的“ids”,关键是,它只能在 1 - 99999 之间。
“好”的是,它必须是唯一的,只有在与另一列的组中。
我们有组,每个组都有自己的“group_id”,每个组都需要unique('group_id', 'increment_id')之类的东西
99999 条记录现在对于每个组来说足够几年,但对于所有组来说还不够,因此我不能只使用 AUTO_INCREMENT 创建表并在其中插入记录并自动递增。
例如,如果第一组需要 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 的 subselect 的值,那么它总是“ok”?
【问题讨论】:
标签: mysql increment auto-increment