J'utilise une table de mémoire . Il a plusieurs identifiants et toutes les données sont des entiers. Mon code met à jour le compteur de 1 si les données existent ou crée une ligne avec compteur = 1 sinon.Mysql Erreur d'entrée en double sur ON DUPLICATE KEY UPDATE
La requête que j'utilise est:
INSERT INTO linked_mem
(id1, id2, id31, id4 cnt)
VALUES (31316, 0, 557158967, 261470594, 1)
ON DUPLICATE KEY UPDATE cnt= cnt+1
De temps en temps (environ 5% des inserts) Je reçois "entrée en double '[numéros clés]' pour la touche 1
Quel pourrait être le problème Isn? « t la partie KEY UPDATE Duplicate censé gérer la clé en double
Mise à jour: créer la table de ajoutant la table réelle
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
pouvez-vous télécharger la table create de linked_mem –