Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

mysql trigger on update Prüfung des OLD.Timestamp zu "aktuell".Timestamp

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von reanimator, 18 August 2015.

  1. reanimator

    reanimator Neuer Benutzer

    Hallo zusammen,
    gleich vorweg, selbst Frischling wäre übertrieben bitte um nachsicht.
    Ich habe ein Problem mit einem Trigger und stehe total auf dem Schlauch!

    Was soll geschehen!
    eine Lösung soll prüfen ob "vor" dem Update der Timestamp des Datensatzes nochmals geändert hat.
    Hat sich dieser geändert, soll das update nicht durchgeführt werden, gleich ob abbruch oder fehlermeldung
    wichtig ist, es wird nicht durchgeführt!

    Da ich derzeit an die u.g Mysql-Version gebunden bin, ist der Trigger nur Suboptimal denn hier benötige ich eventuell das Super Recht und das möchte ich eigentlich vermeiden.

    Mysql 5.1.36
    Editiert wird das Ganze via phpmyadmin daher habe ich den Trigger favorisiert.

    Mein Trigger läuft bevor update ....
    Code:
    Begin
    IF (select zeitstempel from  "meine Tabelle") Where id = OLD.id) != OLD.zeitstempel THEN
    Call `irgendeine Prozedur`; --> gibt eventuell eine fehlermeldung aber mir fällt hier nichts ein
    end if;

    Für Ideen oder Anregungen wäre ich dankbar
    Danke im vorraus.
     
    Zuletzt von einem Moderator bearbeitet: 18 August 2015
  2. Distrilec

    Distrilec Datenbank-Guru

    Der Trigger ist unnötig... Und auch sinnfrei...
    Immerhin selektierst du hier innerhalb von ein paar Mikrosekunden den Wert zweimal und vergleichst die beiden Ergebnisse...

    Normale vorgehensweise:
    1. Write Lock auf den Datensatz legen
    2. Zeitstempel prüfen (ggbfs. Lock wieder entfernen)
    3. Updaten
    4. Lock entfernen

    Zu beachten ist hier das man den Zeitstempel an seine Applikation beim laden der Daten übergibt... Dieser so lange gehalten wird bis Änderungen vorgenommen werden soll und man dann diesen Zeitstempel mit dem in der Datenbank vergleicht.

    Strukturell dürfte das dann so aussehen:

    1. Applikation lädt Daten (auch den Zeitstempel)
    2. User geht nen Kaffee trinken
    10 Minuten Pause....
    3. User macht ein paar Änderungen
    4. Update Prozess (Zeitstempel wird von der Applikation mit übergeben und mit dem aktuellen in der Datenbank verglichen)

    Edit:
    Um es nochmal hervorzuheben... Trigger braucht man da keinen :)
     
    Zuletzt bearbeitet: 18 August 2015
  3. reanimator

    reanimator Neuer Benutzer

    Die Applikation ist der "Adminer Editor" den finde ich fix und praktisch --> nur die Sache mit der "wohl verdienten Pause" ist das Problem.

    Das ist mir vorhin auch gekommen das ich eigentlich einen neuen Zeitstempel abhole und nicht die Daten vom Browser Cache für den vergleich nutze.
    Suche eine einfache Lösung die mir mit "Adminer Edtor" ermöglicht da ich das Ganze aus fertigen Bausteinen zu schmieden.

    Problem User lässt Browser mit getätigter Suche stehen und Editier nach einer Pause das Suchergebniss --> ein kurzer Timeout mit Neuanmeldung stört den Nutzer

    Danke, muss ich mir überlegenwie es zu lösen ist. ggf Autorefresch des Adminers
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden