Joah.: MySQL Referentielle Integrität

Hallo Leute,

ich habe in einer Datenbank Datensätze stehen, und möchte ein Flag ("geändert") auf 1 setzen, damit ich bzw. mein Spider später erkennt, dass er diesen Datensatz für die Suche neu indexieren soll.

Mit ON UPDATE kann ich den aktuellen Timestamp setzen, ich möchte hier aber nur eine 0 oder eine 1 stehen haben. Ist das überhaupt möglich, wenn ja wie?

Danke für eure Hilfe.

Joah.

  1. Moin!

    ich habe in einer Datenbank Datensätze stehen, und möchte ein Flag ("geändert") auf 1 setzen, damit ich bzw. mein Spider später erkennt, dass er diesen Datensatz für die Suche neu indexieren soll.

    Dann setze das Flag beim UPDATE einfach auf 1 und setze es später auf 0 zurück, wenn dein Indexer vorbeikommt.

    Ist natürlich ein ziemlicher Extraaufwand, denn mit einem Timestamp (das erste Feld vom Typ TIMESTAMP in einer Tabelle aktualisiert sich automatisch bei INSERT oder UPDATE in diesem Datensatz) und einem Indexer, der sich merkt, wann er zuletzt gelaufen ist, könntest du automatisch alle Datensätze finden, die NACH diesem Zeitpunkt geändert wurden, ohne sie dann manuell im Flag wieder auf 0 setzen zu müssen.

    Mit ON UPDATE kann ich den aktuellen Timestamp setzen, ich möchte hier aber nur eine 0 oder eine 1 stehen haben. Ist das überhaupt möglich, wenn ja wie?

    ON UPDATE setzt die Verwendung der InnoDB-Engine voraus, MySQL unterstützt ansonsten keine referentielle Integrität, und das, was du willst, hat damit auch nichts zu tun.

    - Sven Rautenberg

    1. Hallo

      [...] MySQL unterstützt ansonsten keine referentielle Integrität,

      Habe ich diesen Handbuch-Abschnitt oder Dich missverstanden? Ich habe diesen Abschnitt so verstanden, dass MySQL ab 3.23.44 aufwärts bei der InnoDB-Engine referentielle Integrität unterstützt.

      und das, was du willst, hat damit auch nichts zu tun.

      Einen Zusammenhang zwischen dem Anliegen des OP und referentieller Integrität habe ich ebenfalls nicht sehen können.

      Freundliche Grüße

      Vinzenz

      1. Moin!

        [...] MySQL unterstützt ansonsten keine referentielle Integrität,

        Habe ich diesen Handbuch-Abschnitt oder Dich missverstanden? Ich habe diesen Abschnitt so verstanden, dass MySQL ab 3.23.44 aufwärts bei der InnoDB-Engine referentielle Integrität unterstützt.

        Mein Satz lautet vollständig:

        "ON UPDATE setzt die Verwendung der InnoDB-Engine voraus, MySQL unterstützt ansonsten keine referentielle Integrität"

        Worauf bezieht sich nun "ansonsten"? :) Damit alle Klarheiten beseitigt?

        - Sven Rautenberg

        1. Hallo Sven,

          "ON UPDATE setzt die Verwendung der InnoDB-Engine voraus, MySQL unterstützt ansonsten keine referentielle Integrität"

          Worauf bezieht sich nun "ansonsten"? :) Damit alle Klarheiten beseitigt?

          Also hatte ich Dich missverstanden, denn der Bezug von "ansonsten" war mir in Deinem Satz verschleiert.

          Schleier beseitigt :-)

          Freundliche Grüße

          Vinzenz