创建一个复合唯一索引。这将允许在各个字段中进行任意数量的重复,但是组合必须是唯一的。
CREATE UNIQUE INDEX ix_uq ON test (field1, field2, field3);
…并
INSERT IGNORE在不违反唯一索引的情况下用于插入。如果是,则忽略插入。
INSERT IGNORE INTO test (field1,field2,field3) VALUES (1,1,1);
一个用于测试的SQLfiddle。
如果要插入(除非有重复项),然后更新(如果有),也可以使用
INSERT INTO ... ON DUPLICATE KEY UPDATE;
INSERT INTO test (field1, field2, field3) VALUES (1,1,1) ON DUPLICATE KEY UPDATE field4=field4+1;
另一个SQLfiddle。



