2012-02-28 1 views
1

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

ID 

DATE   

STORE    

TOTAL   

NPS  

FROM 
+0

Похоже, что DATE и FROM являются вторичным ключом. В этом случае вы можете справиться с этим, используя код на стороне сервера. Вторичный ключ гарантирует, что все комбинации FROM и DATE уникальны. – Zoidberg

ответ

4

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

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

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

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

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

Смежные вопросы