Thread Datenbank einträge vergleichen und einfügen: Datenbank einträge vergleichen und einfü
(15 answers)
Opened by martin101 at 2006-03-07 16:24
Also, nachdem ich nicht weiss, welche Datenbank du nutzt, kann ich dir da nicht 100% ein Beispiel geben.
Aber hier mal was aus Postgres: Code: (dl
)
1 CREATE TABLE daten ( So, damit hast du mal eine Tabelle mit ner fortlaufenden ID, 2 Feldern fuer Daten und das besagte Feld mit dem Zeitstempel. Wenn du nun so Daten einfuegst, dann wird der Zeitstempel immer auf den Zeitpunkt des Einfuegens gesetzt: Code: (dl
)
INSERT INTO daten (feld1,feld2) VALUES('blafaselblubber',1234); Du willst ja aber vorher pruefen, ob es schon den gleichen Datensatz, der innerhalb der letzten 30 Minuten eingetragen wurde gibt. Also pruefst du das vor dem INSERT: Code: (dl
)
SELECT id FROM daten WHERE feld1='blafaselblubber' AND feld2=1234 AND changed > now() - interval '30 minutes'; Wenn dieser SELECT was zurueckliefert, dann brauchst du den Datensatz nicht einfuegen, da er innerhalb der letzten 30 Minuten schon einmal eingefuegt wurde. Eventuell musst du das fuer deine Datenbank von der SQL-Syntax her etwas anpassen. Also, nochmal zusammengepackt: Code (perl): (dl
)
1 2 3 4 5 #Pruefen ob Datensatz innerhalb der letzten 30 Minuten eingetragen wurde unless ( $dbh->selectrow_array(qq{SELECT ... FROM ... WHERE ... AND changed > now() - interveral '30 minutes'})) { # ok, nix da, dann INSERT $dbh->do(qq{INSERT INTO ... (...) VALUES(...); } |