有没有办法让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
我不想通过任何'疯狂'方法来实现这一目标,但如有必要,我会这样做。
答案 0 :(得分:16)
对于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)
);
以下是manual对此的说法
在这种情况下,生成的值为 AUTO_INCREMENT列是 计算为 MAX(auto_increment_column)+ 1 WHERE 前缀=给定前缀。这很有用 当你想把数据放入有序的时候 基团。
答案 1 :(得分:0)
您是否考虑过composite primary keys?
答案 2 :(得分:0)
你可以通过插入触发器实现这一点,通过group_fileld = @inserted_group的group_field设置表组中的max(id);