Utwórz złożony unikalny indeks. Umożliwi to dowolną liczbę duplikatów w poszczególnych polach, ale kombinacja musi być unikalna.
CREATE UNIQUE INDEX ix_uq ON test (field1, field2, field3);
...i użyj INSERT IGNORE
do wstawienia, jeśli unikalny indeks nie jest naruszony. Jeśli tak, po prostu zignoruj wstawkę.
INSERT IGNORE INTO test (field1,field2,field3) VALUES (1,1,1);
Jeśli chcesz wstawić, o ile nie ma duplikatu, i zaktualizować, jeśli jest, możesz również użyć INSERT INTO ... ON DUPLICATE KEY UPDATE
;
INSERT INTO test (field1, field2, field3) VALUES (1,1,1)
ON DUPLICATE KEY UPDATE field4=field4+1;