Question

I've run into a problem with MySQL unique indicies. What I want to do is have something like this:

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

Where there can be multiple instances of the same user ID, as well as multiple instances of group IDs, but only allow unique combinations of the two. I'm using this with an ON DUPLICATE KEY UPDATE MySQL query, and I'm wondering what I need to do to the indexes on the table. Currently, I have this:

PRIMARY id
UNIQUE  user_id, group_id

But... a) is this enough and b) am I doing it right to get what I'm looking for?

Thanks for any help

James

Was it helpful?

Solution

You almost got it. If you use MyISAM engine, you can do this:

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

Try it and see the behavior, it'll increment the id the way you specified in your example and you'll have unique constraint too.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top