多个唯一列但只有唯一组合

时间:2011-05-12 20:54:34

标签: mysql unique-index

我遇到了MySQL独特标记的问题。我想做的是这样的事情:

user_id  group_id
1        1
1        2
1        3
2        1
2        4

如果可以有多个相同用户ID的实例,以及多个组ID实例,但允许两者的唯一组合。我正在使用ON DUPLICATE KEY UPDATE MySQL查询,我想知道我需要对表上的索引做些什么。目前,我有这个:

PRIMARY id
UNIQUE  user_id, group_id

但...... a)这是否足够b)我是否正确地得到了我正在寻找的东西?

感谢您的帮助

詹姆斯

1 个答案:

答案 0 :(得分:3)

你几乎得到了它。如果您使用MyISAM引擎,则可以执行以下操作:

CREATE TABLE your_table(
id int unsigned not null auto_increment,
group_id int unsigned,
primary key(group_id, id)
) ENGINE = MyISAM;

尝试并查看行为,它会按照您在示例中指定的方式递增ID,并且您也将拥有唯一约束。