sql >> Base de Datos >  >> RDS >> Mysql

actualizar si existen dos campos, insertar si no (MySQL)

Un índice único en MySQL no tiene que estar en una sola columna. Puede agregar un índice ÚNICO en varias columnas simplemente especificando más columnas en su ALTER TABLE..ADD UNIQUE declaración:

ALTER TABLE myTable ADD UNIQUE (
    mykey,
    myfoo
);

Ahora puede usar un INSERT INTO...ON DUPLICATE KEY normal. declaración.

DEMOSTRACIÓN DE SQLFiddle (tenga en cuenta que los múltiples valores repetidos no se suman; todos los demás sí )

Nota :

Si cualquiera de los dos es NULL, no ser contado como único. mykey siendo 'barra' y myfoo ser NULL podría agregarse al infinito aunque tengan los "mismos" valores (NULL no es realmente un valor).