Несколько уникальных столбцов, но только уникальные комбинации
Я столкнулся с проблемой с уникальными признаками MySQL. Я хочу сделать что-то вроде этого:
идентификатор_пользователя 1 1 1 2 1 3 2 1 2 4
Где может быть несколько экземпляров одного и того же идентификатора пользователя, а также несколько экземпляров идентификаторов групп, но допускаются только уникальные комбинации обоих. Я использую это с ON DUPLICATE KEY UPDATE
MySQL запрос, и мне интересно, что мне нужно сделать с индексами в таблице. В настоящее время у меня есть это:
ПЕРВИЧНЫЙ ID UNIQUE user_id, group_id
Но... а) этого достаточно и б) правильно ли я делаю, чтобы получить то, что я ищу?
Спасибо за любую помощь
Джеймс
1 ответ
Вы почти получили это. Если вы используете движок MyISAM, вы можете сделать это:
CREATE TABLE your_table(
id int unsigned not null auto_increment,
group_id int unsigned,
primary key(group_id, id)
) ENGINE = MyISAM;
Попробуйте и посмотрите, как он будет увеличивать идентификатор, как вы указали в своем примере, и у вас также будет уникальное ограничение.