Cree un índice único compuesto. Esto permitirá cualquier cantidad de duplicados en los campos individuales, pero la combinación debe ser única.
CREATE UNIQUE INDEX ix_uq ON test (field1, field2, field3);
...y usa INSERT IGNORE
para insertar si no se viola el índice único. Si es así, simplemente ignore el inserto.
INSERT IGNORE INTO test (field1,field2,field3) VALUES (1,1,1);
Si desea insertar a menos que haya un duplicado y actualizar si lo hay, también puede usar INSERT INTO ... ON DUPLICATE KEY UPDATE
;
INSERT INTO test (field1, field2, field3) VALUES (1,1,1)
ON DUPLICATE KEY UPDATE field4=field4+1;