MySQL-Insert-Trigger: Vor der Ausführung auf doppelte Einträge prüfen
Ich habe einen Trigger, der das "Kopieren" von Einträgen aus meiner Datenbank des Home Assistant (Home Automation Software) in eine andere Tabelle in einer anderen DB ausführt. Der Home Assistant speichert Einträge in einer Tabelle mit dem Namen "States". Wenn es einen neuen Eintrag für die entity_id meines Nokia (Withings) WLAN-Bereichs gibt, möchte ich seine Werte in meine "Health" -Tabelle in der DB "Home" kopieren. So weit, so gut, es funktioniert mit diesem Trigger:
BEGIN IF new.entity_id = '[my_wifi_scale]' THEN INSERT INTO my_db.health (user, datetime, metric, val1, val2) VALUES ('[my_username]', new.last_changed, 'weight', new.state, JSON_EXTRACT(new.attributes, '$.fat_ratio')); END IF; END
Nun möchte ich prüfen, ob der neue Eintrag bereits existiert. Der Home Assistant empfängt die Werte regelmäßig und kümmert sich nicht darum, ob die Daten redundant sind.
Wie kann ich den Auslöser so ändern, dass er den Wert nur in meine "Health" -Tabelle einfügt, wenn sich die Felder "user", "val1" und "val2" vom vorherigen Eintrag unterscheiden? Es ist mir egal, ob die Tabelle des Auslösers ("Zustände" des Home Assistant) oder meine eigene ("Gesundheit") geprüft wird.
Ich habe zwar versucht, Einschränkungen in meine "Gesundheitstabelle" einzufügen, dies entspricht jedoch nicht den anderen darin gespeicherten Werten, wie beispielsweise Blutdruckwerten, die sich häufiger wiederholen. Deshalb suche ich nach einer Änderung des Abzugs.
Irgendwelche Ideen?
Danke / Grüße
0 Antworten auf die Frage
Verwandte Probleme
-
3
OpenX: mySql VS PostgreSQL
-
4
Wie kann ich eine MySQL-Datenbank am besten in eine Zugangsdatenbank konvertieren?
-
6
Wie kann ich verhindern, dass Dienste beim Booten unter Ubuntu gestartet werden?
-
2
Wie kann ich meine Datenbank wiederherstellen?
-
6
Ist MySQL standardmäßig mit OS X Leopard 10.5 oder 10.6 installiert?
-
4
Warum wirft PHP nach "mysql_connect" oder bei "mysql_close" "Segmentation fault (11)"?
-
3
Verbindungsproblem zu MySQL auf einem anderen Rechner im LAN
-
3
Hilfe beim Einrichten von MySQL (zur Verwendung mit PHP und Apache) unter OS X
-
10
MySQL startet nicht!
-
1
Mac-Webserver, MySQL-Sicherheit