C_buster_G: Doppelte Daten nicht in MySQL Tabelle Schreiben

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 ;-)

  1. 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

    1. Hi lulu,

      1. Vor dem Dateneintrag prüfen ob ein "doppelter" (identischer) Datensatz bereits eingetragen ist
      2. 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

      1. Hi!

        1. Vor dem Dateneintrag prüfen ob ein "doppelter" (identischer) Datensatz bereits eingetragen ist
        2. 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

        1. 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

          1. 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

  2. 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