Doppelte Daten nicht in MySQL Tabelle Schreiben
C_buster_G
- php
Hi,
Folgendes:
Kann mir jemand verraten wie man verhindern kann Dopellte Datensätze in eine MySQL Tabelle zu schreiben?
Beispiel:
Ich greife per Parser von seite WWW.XY.DE News ab diese Aktualisieren sich unregelmässig, da ich diese aber in mein Archiv(MySQL) schreiben möchte müsste ich irgendwie die Dopellten rausfiltern(um halt Dopellte eintraege zu vermeiden...
Hat jemand rat?
Danke Chris
PS.: die rechtschreibfehler dienen der belustigung ;-)
Huhu Chris
Kann mir jemand verraten wie man verhindern kann Dopellte Datensätze in eine MySQL Tabelle zu schreiben?
Z.B.
1. Vor dem Dateneintrag prüfen ob ein "doppelter" (identischer) Datensatz bereits eingetragen ist
2. Je nach Ergebnis von 1. entsprechend verfahren
Ist doch eigentlich einfach, oder?
Viele Grüße
lulu
Hi lulu,
- Vor dem Dateneintrag prüfen ob ein "doppelter" (identischer) Datensatz bereits eingetragen ist
- Je nach Ergebnis von 1. entsprechend verfahren
hältst Du Dein Konstrukt für tauglich in einer Welt, in der der Prozessor zwischen diesen beiden Schritten einen Taskwechsel vornehmen kann?
Oder in einer Welt, in welcher der Server mehr als einen Prozessor besitzt?
Ist doch eigentlich einfach, oder?
Äh, ja. Etwas zu sehr vereinfacht, um genau zu sein. ;-)
Viele Grüße
Michael
Hi!
- Vor dem Dateneintrag prüfen ob ein "doppelter" (identischer) Datensatz bereits eingetragen ist
- Je nach Ergebnis von 1. entsprechend verfahren
hältst Du Dein Konstrukt für tauglich in einer Welt, in der der Prozessor zwischen diesen beiden Schritten einen Taskwechsel vornehmen kann?
Oder in einer Welt, in welcher der Server mehr als einen Prozessor besitzt?
Aber das kann man doch mit einem LOCK verhindern, oder?
Grüße
Andreas
Hi Andreas,
Aber das kann man doch mit einem LOCK verhindern, oder?
warum etwas selbst programmieren, das die Datenbank bereits kann? Integrität ist eine _Eigenschaft_ der Daten - ein Näherungswert reicht da nicht aus ...
Viele Grüße
Michael
Hi!
Aber das kann man doch mit einem LOCK verhindern, oder?
warum etwas selbst programmieren, das die Datenbank bereits kann? Integrität ist eine _Eigenschaft_ der Daten - ein Näherungswert reicht da nicht aus ...
verstehe ich nicht. Es gibt doch zumindest bei MySQL die Möglichkeit mit LOCK ab diesem Zeitpunkt sämtliche Zugriffe auf die Datenbank zu stoppen. Was hat das mit einem Nährungswert zu tun? Und was macht die Datenbank da selbst? Mit Foreign Keys oder was meinst Du?
Grüße
Andreas
Hi,
Kann mir jemand verraten wie man verhindern kann Dopellte Datensätze in eine MySQL Tabelle zu schreiben?
über ein Unique-Constraint; dann schmeißt die DB nämlich eine Exception. Wenn Du dies vermeiden willst, dann frage zuvor genau die Daten ab, die Du schreiben willst (Vorsicht: bei zeitgleichen Zugriffen kann dies kollidieren und - ohne Unique-Constraint - dennoch zu doppelten Daten führen). Übrigens solltest Du zunächst den Begriff "doppelt" definieren.
Cheatah