@pavlikmd

Как проверять две колонки на уникальность в mysql?

Здравствуйте, имеется таблица%

id | article | brand
1 | 01 | BMW
2 | 02 | BMW
3 | 03 | BMW
4 | 04 | BMW
5 | 01 | BMW
6 | 01 | VAG
7 | 02 | VAG
8 | 01 | VAG

Сейчас перед добавлением данных идет проверка:

$res = $db->getRow("SELECT * FROM products WHERE article = ?s and brand = ?s ", $article, $brand) (использую SafeMySQL)
if(empty($res)) {
INSERT ....
} else {
continue;
}

по моей логике оно должно не добавлять дубли в базу, но они как то попадают туда, добавление происходит с excel, тоесть импортируется ексель файл и с него построчно идет проверка.

Из-за того то есть дубли я подумал о составных индексах, вопрос как правильно это сделать ?
Тоесть должна быть уникальная связка article,brand
Из таблицы выше дубли это id: 5 и 8
Article может иметь несколько одинаковых значений, и brand тоже имеет одинаковые значения НО article и brand всегда должен быть уникальным

Как назначить индексы по двум колонкам.
  • Вопрос задан
  • 654 просмотра
Решения вопроса 1
@bkosun
ALTER TABLE `table` ADD UNIQUE `index` (`column_1`, `column_2`);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы