Mysql Duplicate entry " - Fehler auf ON DUPLICATE KEY UPDATE

Ich bin mit einem Tabelle im Speicher. Es hat mehrere ids und Zähler werden alle Daten ganze zahlen.
Mein code aktualisiert den Zähler um 1, wenn die Daten vorhanden sind oder erstellt eine Linie mit Zähler=1, falls nicht.

Die Abfrage, die ich benutze, ist:

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 Einsätze) bekomme ich "Duplicate entry" [Kennzahlen]' für Schlüssel 1

Was das problem sein könnte? Ist das nicht die ON DUPLICATE KEY UPDATE Teil handhaben soll, den doppelten Schlüssel?

Update: hinzufügen, erstellen Sie die 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
kann u laden Sie die Tabelle erstellen von linked_mem

InformationsquelleAutor Nir | 2009-06-25

Schreibe einen Kommentar