在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我不希望通过任何“疯狂”的方法来实现这一点,但如果有必要的话,我会这样做的。
发布于 2009-03-24 14:09:59
对于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,其中prefix=给定前缀。当您想要将数据放入有序组中时,这很有用。
发布于 2009-03-24 14:11:06
你有没有想过composite primary keys
发布于 2009-03-24 14:12:11
您可以使用insert时触发来实现这一点,通过具有group_fileld =@inserted_group的group_field从表group中设置max(id);
https://stackoverflow.com/questions/677542
复制相似问题