Créez un index unique composite. Cela autorisera n'importe quel nombre de doublons dans les champs individuels, mais la combinaison doit être unique.
CREATE UNIQUE INDEX ix_uq ON test (field1, field2, field3);
...et utilisez INSERT IGNORE
à insérer si l'index unique n'est pas violé. Si c'est le cas, ignorez simplement l'insertion.
INSERT IGNORE INTO test (field1,field2,field3) VALUES (1,1,1);
Si vous souhaitez insérer à moins qu'il y ait un doublon et mettre à jour s'il y en a un, vous pouvez également utiliser INSERT INTO ... ON DUPLICATE KEY UPDATE
;
INSERT INTO test (field1, field2, field3) VALUES (1,1,1)
ON DUPLICATE KEY UPDATE field4=field4+1;