Estoy usando una tabla de memoria . Tiene varios identificadores y todos los datos son enteros. Mi código actualiza el contador por 1 si los datos existen o crea una línea con contador = 1 si no es así.Mysql Error de entrada duplicada en ON ACTUALIZACIÓN DE LLAVE DUPLICADA
La consulta que uso es:
INSERT INTO linked_mem
(id1, id2, id31, id4 cnt)
VALUES (31316, 0, 557158967, 261470594, 1)
ON DUPLICATE KEY UPDATE cnt= cnt+1
Ocasionalmente (alrededor del 5% de inserciones) me sale "Entrada duplicada '[números clave]' para la llave 1
¿Cuál podría ser el problema Isn? 't la parte aCTUALIZACIÓN ON DUPLICATE KEY supone para manejar la llave duplicada
cambio: la adición de crear la tabla de la mesa real
CREATE TABLE `linked_mem` (
`li_sid` int(10) unsigned NOT NULL default '0',
`li_id1` int(10) unsigned NOT NULL default '0',
`li_cid1` int(10) unsigned NOT NULL default '0',
`li_id2` int(10) unsigned NOT NULL default '0',
`li_cid2` int(10) unsigned NOT NULL default '0',
`cnt` int(10) unsigned NOT NULL default '1',
`li_filter` int(10) unsigned NOT NULL default '0',
`li_group` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`li_id1`,`li_sid`,`li_cid1`,`li_cid2`,`li_group`,`cnt`,`li_id2`)
) ENGINE=MEMORY DEFAULT CHARSET=latin1
puedes subir la tabla de creación de linked_mem –