[英]auto_increment by group
MySQL(特别是 5.0)有没有办法让 auto_increment 字段的值基于分组列?
例子:
id name group_field
1 test 1
2 test2 1
1 test3 2
2 test4 2
1 test5 3
2 test6 3
我不想通过任何“疯狂”的方法来 go 来实现这一点,但如果有必要的话。
对于 MyISAM 和 BDB 表,您可以将auto_increment字段作为键的辅助部分,例如
CREATE TABLE foo (
id INT AUTO_INCREMENT NOT NULL,
group_field INT NOT NULL,
name VARCHAR(128),
PRIMARY KEY(group_field, id)
);
这是手册对此的说明
在这种情况下,AUTO_INCREMENT 列的生成值计算为 MAX(auto_increment_column) + 1 WHERE prefix=given-prefix。 当您要将数据放入有序组时,这很有用。
您是否考虑过复合主键?
您可以通过插入触发器来实现这一点,通过 group_field 设置表组中的 max(id) 具有 group_fileld = @inserted_group;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.