Несколько уникальных столбцов, но только уникальные комбинации - PullRequest
1 голос
/ 13 мая 2011

Я столкнулся с проблемой уникальных признаков MySQL.Я хочу сделать что-то вроде этого:

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

Где может быть несколько экземпляров одного и того же идентификатора пользователя, а также несколько экземпляров идентификаторов групп, но только позволяютуникальные комбинации двух.Я использую это с ON DUPLICATE KEY UPDATE запросом MySQL, и мне интересно, что мне нужно сделать с индексами в таблице.В настоящее время у меня есть это:

PRIMARY id
UNIQUE  user_id, group_id

Но ... а) этого достаточно и б) я делаю это правильно, чтобы получить то, что я ищу?

Спасибо за любыепомощь

Джеймс

1 Ответ

3 голосов
/ 13 мая 2011

Ты почти понял. Если вы используете движок MyISAM, вы можете сделать это:

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

Попробуйте и посмотрите на поведение, оно будет увеличивать id так, как вы указали в своем примере, и у вас также будет уникальное ограничение.

...