5 Stimmen

Mysql Fehler bei doppeltem Eintrag bei ON DUPLICATE KEY UPDATE

Ich benutze eine Speichertabelle . Sie hat mehrere Kennungen und einen Zähler. Alle Daten sind Ganzzahlen. Mein Code aktualisiert den Zähler um 1, wenn die Daten vorhanden sind oder erstellt eine Zeile mit counter=1 wenn nicht.

Die von mir verwendete Abfrage lautet:

INSERT INTO linked_mem
    ( id1, id2, id31, id4, cnt)
    VALUES (31316, 0, 557158967, 261470594, 1)
ON DUPLICATE KEY UPDATE cnt = cnt+1

Gelegentlich (etwa 5 % der Einfügungen) erhalte ich die Meldung "Doppelter Eintrag '[Schlüsselnummern]' für Schlüssel 1

Was könnte das Problem sein? Sollte der Teil ON DUPLICATE KEY UPDATE nicht den doppelten Schlüssel behandeln?

Update: Hinzufügen einer Tabelle der echten Tabelle

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X