Un indice univoco in MySQL non deve necessariamente trovarsi su una singola colonna. Puoi aggiungere un indice UNIQUE su più colonne semplicemente specificando più colonne nel tuo ALTER TABLE..ADD UNIQUE dichiarazione:
ALTER TABLE myTable ADD UNIQUE (
mykey,
myfoo
);
Ora puoi usare un normale INSERT INTO...ON DUPLICATE KEY dichiarazione.
DEMO SQLFiddle (nota che i valori ripetuti multipli non vengono aggiunti - tutti gli altri lo sono )
Nota :
Se uno dei due è NULL, non essere considerato unico. mykey essendo 'bar' e myfoo essere NULL potrebbe essere aggiunto all'infinito anche se hanno gli "stessi" valori (NULL non è proprio un valore).