NEWS
[Gelöst] SQL-Adapter - doppelte Einträge
-
Guten Abend zusammen!
Ich logge mehrere Datenpunkte mit dem SQL-Adapter. Leider erscheinen immer wieder Fehlermeldungen im Log:
(8892) Cannot insert INSERT INTO `ioBroker`.ts_number (id, ts, val, ack, _from, q) VALUES(114, 1576348187661, 121.586, 0, 11, 0);: Error: ER_DUP_ENTRY: Duplicate entry '1576348187661' for key 'PRIMARY (8892) Cannot insert INSERT INTO `ioBroker`.ts_number (id, ts, val, ack, _from, q) VALUES(117, 1576348187661, 13.401, 0, 11, 0);: Error: ER_DUP_ENTRY: Duplicate entry '1576348187661' for key 'PRIMARY' (8892) Cannot insert INSERT INTO `ioBroker`.ts_number (id, ts, val, ack, _from, q) VALUES(116, 1576348187661, 1470663, 0, 11, 0);: Error: ER_DUP_ENTRY: Duplicate entry '1576348187661' for key 'PRIMARYHier sieht man schon, dass der SQL Adapter versucht alle Werte mit dem gleichen timestamp (ts) zu speichern. Leider ist es ja so, dass der SQL Adapter alle Werte in eine "große Tabelle" speichert und der timestamp der primary key ist.
Habt ihr eine Idee wie ich das lösen kann? Ich habe schon mit verschiedenen Entprell-Zeiten in den einzelnen Datenpunkten versucht (zwischen 1000 und 3000 ms) - leider ohne Erfolg

Schöne Grüße aus Bayern!
-
Also die Option "Parallelanfragen erlauben" in den Einstellungen des SQL-Adapters zu deaktivieren hilft leider auch nicht

Hat den sonst keiner das Problem der den SQL-Adapter für das Login von Datenpunkten benutzt?
Ich habe bemerkt, dass der Adapter scheinbar bei einigen einen eigenen Primary-Key mittels "id + ts" erzeugt (z.B. 23-1450179321000). Das macht er bei mir leider nicht...
-
Vielen, vielen herzlichen Dank an die schnelle und sehr kompetente Unterstützung von @apollon77 via gitHub. Mit seiner Hilfe konnte ich das Problem sehr schnell lösen.
https://github.com/ioBroker/ioBroker.sql/issues/90Aus irgendwelchen, nicht mehr nachvollziehbaren Gründen waren die Primary-Keys in der MySQL-DB nicht richtig angelegt.
Primary-Key IST: ts
Primary-Key SOLL: id + tsDie Lösung war in phpMyAdmin in der Tabelle ioBroker.ts_number unter "Indizes" die Reihen "id" und "ts" hinzuzufügen.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden