Mailinglisten-Archive |
Hi, Dieter Spieß: > 1. Ein Client setzt auf eine Tabelle ein Write- oder Read-Lock. > Wie kann ein anderer Client _vor_ einem Schreib- oder Lese- > Zugriff feststellen, ob und welcher ein Lock vorliegt ? > Gar nicht. Es bringt nichts. Client A Client B Lock? => NEIN Lock! => ERFOLG Zugriff => blockiert > 2. Client A lädt über SQL einen Datensatz zum Editieren > Änderungen: Strasse und Telefonnummer > Client B lädt über SQL den gleichen Datensatz mit den > alten Inhalten Änderungen: Umsatz > Client A speichert den Datensatz mit _seinen_ neuen Inhalten > Client B speichert den Datensatz mit _seinem_ neuen Inhalt > "Den Datensatz" komplett zurückzuschreiben ist Unsinn. > Ergebnis: Der Datensatz enthält zwar den neuen Umsatz, aber > die alte Strasse und Telefonnummer > Wieso updatest du beim Ändern überhaupt irgendwas, was du nicht geändert hast? > Wie werden solche Standardprobleme mit MySQL gelöst ? UPDATE Tabelle SET NeuesFeld = NeuerInahtl WHERE Index=12345 AND NeuesFeld = AlterInhalt => wenn dir jemand reingepfuscht hat, wurde nix geupdatet. (Die Abfrage liefert die Anzahl der geänderten Datensätze zurück.) Oder: UPDATE Tabelle SET Umsatz = Umsatz+MehrUmsatz WHERE KundeID = 23456 Das ist in jedem Fall atomar und kann dir nichts kaputtmachen. -- Matthias Urlichs | noris network GmbH | smurf_(at)_noris.de | ICQ: 20193661 The quote was selected randomly. Really. | http://www.noris.de/~smurf/ -- More than any other time in history, mankind faces a crossroads. One path leads to despair and utter hopelessness. The other, to total extinction. Let us pray we have the wisdom to choose correctly. -- Woody Allen --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive