MySQL INSERT, только если два поля не совпадают - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть 6 полей с основным в качестве идентификатора и имеет значение auto_increment.Я хочу вставить новую строку, если DATE и FROM не совпадают .Я думал о REPLACE INTO или ON DUPLICATE KEY UPDATE, но откуда я знаю, что один из них должен быть моим Первичным?Мне все равно, как это сделать, мне просто нужна помощь с запросом, который будет работать.

ID

DATE        

STORE               

TOTAL           

NPS     

FROM

1 Ответ

5 голосов
/ 28 февраля 2012

Вам нужен уникальный индекс, состоящий из полей DATE и FROM.

ALTER TABLE table ADD UNIQUE INDEX(DATE, FROM);

Тогда вы можете использовать этот тип запроса:

INSERT IGNORE INTO table (columns) VALUES (...)

Оператор IGNORE пропустит любую вставку, которая в противном случае вызвала бы ошибку дублированного ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...