2012-04-28 16 views
5

ya buscó esos temas y encontró 2 soluciones diferentes, pero nadie funciona.MySQL INSERT IGNORE o DUPLICATE KEY DO_NOTHING

Mi tabla tiene estructura | ID (auto_increment primary_key) | UID (int) | FAV_ID (int) |

Necesito insertar un nuevo registro en este FAV_TABLE si UID y FAV_ID (ambos) ya existen.

Ejemplo de mi consulta:

INSERT INTO FAV_TABLE (uid, fav_id) VALUES ($u_id,$s_id) ON DUPLICATE KEY UPDATE uid = uid 

o éste

INSERT IGNORE FAV_TABLE (uid, fav_id) VALUES ($u_id,$s_id); 

como manuales de MySQL dice que esta consulta no añadir registro sólo si PRIMARY_KEY es el mismo. Y necesito una consulta para no agregar registro si pair uid + fav_id es único. ¿Alguna solución? Gracias

Respuesta

4

es necesario agregar un UNIQUE KEY en esas columnas:

ALTER TABLE FAV_TABLE ADD UNIQUE KEY(uid, fav_id); 
+0

grande, muchas gracias! – 265

2

INSERT IGNORE o ON DUPLICATE KEY funciona solo cuando se duplica una clave única.

Necesita agregar un índice UNIQUE en los campos uid y fav_id. De esta manera, cuando inserta un par duplicado, se ignorará.

Cuestiones relacionadas