phpbar.de logo

Mailinglisten-Archive

[php] Transaktionen / Datenkonsistenz

[php] Transaktionen / Datenkonsistenz

Thomas Fromm tf_(at)_tfromm.com
Mon, 20 Nov 2000 17:01:27 +0100


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