2012-03-29 11 views
5

Tengo una tabla favorita que contiene algunos campos como login_id, driver_id (Un login_id puede tener muchos driver_id). Entonces estoy usando la actualización masiva, sin tener ninguna verificación de que el driver_id existe en la tabla.Omitir inserción en entrada duplicada en mysql

Los datos de entrada se establecerán con los identificadores del controlador. Necesito omitir la inserción de la identificación del controlador si el mismo id ya está allí para el login_id relevante. Por lo tanto, los nuevos identificadores se insertarán y otros no son

¿Qué puedo hacer con mysql? ¿Cuáles son todas las configuraciones necesarias en la tabla?

Espero su consejo

Respuesta

11

Puede usar "INSERT IGNORE INTO" .Es el conteo de filas actualizado devuelto.

INSERT IGNORE INTO favorite(login_id,driver_id) VALUES (login_id,driver_id) (login_id,driver_id)..... 
1

crear una clave única con login_id y driver_id en MySQL.

Cuando intente insertar un registro existente basado en esas claves, se producirá un error. A continuación, puede interceptar este error y proceder de la forma habitual.

CREATE UNIQUE INDEX unique 
    ON tbl_name (login_id, driver_id) 
Cuestiones relacionadas