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
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
Kommentar