Crea un indice univoco composito. Ciò consentirà un numero qualsiasi di duplicati nei singoli campi, ma la combinazione deve essere univoca.
CREATE UNIQUE INDEX ix_uq ON test (field1, field2, field3);
...e usa INSERT IGNORE
da inserire se l'indice univoco non viene violato. Se lo è, ignora semplicemente l'inserto.
INSERT IGNORE INTO test (field1,field2,field3) VALUES (1,1,1);
Se vuoi inserire a meno che non ci sia un duplicato e aggiornare se c'è, puoi anche usare INSERT INTO ... ON DUPLICATE KEY UPDATE
;
INSERT INTO test (field1, field2, field3) VALUES (1,1,1)
ON DUPLICATE KEY UPDATE field4=field4+1;