Mailinglisten-Archive |
Hi, > Jetzt kann es aber vorkommen, das zwischen dem Auslesen des Timestamps, der > Überprüfung auf Gleichheit und dem Update jemand anderes in die Datenbank > hineinschreibt. Das möchte ich natürlich auch verhindern. Wie kann soetwas > geschehen? > > Ich dachte an folgendes: > > BEGIN TRANSACTION > > select .... > Prüfung der Bedingung > update ... > > COMMIT TRANSACTION > > Ich bin weiß aber nicht, ob bei dieser vorgehensweise wirklich die Zeile > gesperrt wird. > > Welche anderen Möglichkeiten gibt es noch? eigendlich alle datenbanken unterstuetzen neben transaktionen auch sachen wie : SELECT bla FROM blub WHERE wurst=1 FOR UPDATE; damit besitzt dann die zeile ein exklusive sperre die dann ganz normal via UPDATE bearbeitet werden kann. beendet wird die sperre durch ein commit dieser transaktion. gruss thomas -- -------------------------------------------------------------------------- http://phporacleadmin.org http://tfromm.com mailto:tf_(at)_inubit.com "go away or I will replace You with a small PHP script!"
php::bar PHP Wiki - Listenarchive