validar unico repitan registros registro quitar que into evitar entry duplicate duplicados datos mysql insert insert-update

unico - registros duplicados php mysql



¿Por qué se ven afectadas 2 filas en mi `INSERTAR... EN ACTUALIZACIÓN DE LLAVE DUPLICADA ''? (2)

Estoy haciendo un INSERT ... ON DUPLICATE KEY UPDATE para una PRIMARY KEY en la siguiente tabla:

DESCRIBE users_interests;

+------------+---------------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------------------+------+-----+---------+-------+ | uid | int(11) | NO | PRI | NULL | | | iid | int(11) | NO | PRI | NULL | | | preference | enum(''like'',''dislike'',''ignore'') | YES | | NULL | | +------------+---------------------------------+------+-----+---------+-------+

Sin embargo, aunque estos valores deben ser únicos, veo 2 filas afectadas.

INSERT INTO users_interests (uid, iid, preference) VALUES (2, 2, ''like'') ON DUPLICATE KEY UPDATE preference=''like'';

Query OK, 2 rows affected (0.04 sec)

¿Por qué está pasando esto?

EDITAR

Para la comparación, vea esta consulta:

UPDATE users_interests SET preference=''like'' WHERE uid=2 AND iid=2;

Query OK, 1 row affected (0.44 sec) Rows matched: 1 Changed: 1 Warnings: 0


Del manual :

Con ON DUPLICATE KEY UPDATE, el valor de filas afectadas por fila es 1 si la fila se inserta como una nueva fila y 2 si se actualiza una fila existente.