Datensätze sperren bei InnoDB, kann mir jemand bitte helfen???

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datensätze sperren bei InnoDB, kann mir jemand bitte helfen???

    Hi,
    ich möchte gerne einzelne Datensätze sperren,
    damit nicht mehrere Sachbearbeiter den gleichen Auftrag bearbeiten.

    Ich habe es mit
    select..from...for update probiert,
    was eigentlich eine exklusive Sperre auf diesen Datensatz legt und sogar auch noch nächste Schlüssel-Sperre.

    Ich habs dann also mit zwei Browserfenstern getestet und mySQL schert sich überhaupt nicht darum, ob der Datensatz nun gelockt ist, oder die Anfrage, oder sonst was und verstösst damit gegen das Isolationsprinzip von Transaktionen.
    Ich kann zum Bsp. alle Kunden mit ID > 20 abfragen in for update modus, und in einem anderen Fenster sofort danach einen weitern Kunden mit einer ID >20 einfügen.
    Das sollte doch nicht funktionieren dürfen !
    Kann mir irgendjemand weiterhelfen ?
    Was mache ich bloß falsch????

    Mein System: WAMP, mySQL 3.23 innodb
    schreibe .php seiten.

    Vielen Dank schon mal im Voraus,
    Anne
    Wenn du etwas gut erledigt haben willlst, dann tu es selbst.

  • #2
    Vom Prinzip her dürfte das problematisch werden ... weil Datensätze, zumindest meines Wissens, innerhalb einer Connection gelogged werden ...

    Nun wird aber Ausführung eines (PHP-)Scripts die Connection beendet ... und damit werden alle Locks natürlich auch wieder aufgehoben ... ... da Du bei Browsergestützten Anwendungen nie mit permanenten Datenbank-Verbindungen arbeitest sind solche Features (wie auch Transaktionen) nicht unbedingt so zu verwenden wie dieses bei "echten" Applikationen der Fall ist ...
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar

    Lädt...
    X