首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >auto_increment by组

auto_increment by组
EN

Stack Overflow用户
提问于 2009-03-24 14:02:13
回答 3查看 7.9K关注 0票数 10

在MySQL (特别是5.0)中,有没有办法让auto_increment字段的值基于分组列?

示例:

代码语言:javascript
复制
id  name   group_field
1   test   1
2   test2  1
1   test3  2
2   test4  2
1   test5  3
2   test6  3

我不希望通过任何“疯狂”的方法来实现这一点,但如果有必要的话,我会这样做的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-24 14:09:59

对于MyISAM和BDB表,您可以使用auto_increment字段作为键的辅助部分,例如

代码语言:javascript
复制
CREATE TABLE foo (
   id          INT AUTO_INCREMENT NOT NULL,
   group_field INT NOT NULL,
   name        VARCHAR(128),

   PRIMARY KEY(group_field, id)
);

以下是manual对此的描述

在本例中,为AUTO_INCREMENT列生成的值的计算公式为MAX(auto_increment_column) +1,其中prefix=给定前缀。当您想要将数据放入有序组中时,这很有用。

票数 17
EN

Stack Overflow用户

发布于 2009-03-24 14:11:06

你有没有想过composite primary keys

票数 0
EN

Stack Overflow用户

发布于 2009-03-24 14:12:11

您可以使用insert时触发来实现这一点,通过具有group_fileld =@inserted_group的group_field从表group中设置max(id);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/677542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档