Я знаю, что могу сделать два столбца уникальными ключами, но это не совсем то, что я хочу.
Я хочу, чтобы это, например, если col1='1', col2='2'
тогда не может быть другой строки с col1='1', col2='2'
, но вполне возможно сделать следующее:
+--------+--------+
| col1 | col2 |
+--------+--------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 2 | 2 |
+--------+--------+
в то время как это невозможно:
+--------+--------+
| col1 | col2 |
+--------+--------+
| 1 | 1 |
| 1 | 1 |
+--------+--------+
Создание уникальных ключей не является параметром, как в col1='1', col2='1'
и col1='1', col2='2'
col1
- то же самое и не разрешено, если оба являются уникальными ключами.
Вам нужен composite unique index
.
ALTER TABLE tablename ADD UNIQUE KEY 'uidx' ('col1', 'col2');
Вам просто нужно объявить уникальный индекс между двумя столбцами col1
и col2
:
CREATE TABLE Table1
(
'col1' int,
'col2' int,
UNIQUE 'unique_index'('col1', 'col2')
);
Если вы попытаетесь вставить 1, 1
, в col1 и col2, вы получите следующую ошибку:
Duplicate entry '1-1' for key 'unique_index'
Вы можете попробовать себя здесь.