Mysql
 sql >> Database >  >> RDS >> Mysql

aggiorna se esistono due campi, inserisci in caso contrario (MySQL)

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).