Mein fehlendes Verständnis bei Transaktionen

Mein fehlendes Verständnis bei Transaktionen

am 31.01.2006 11:26:04 von Andreas Horn

Hallo allerseits,

wenn ich folgende SQL-Anfragen an MySQL sende:
(01) SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;
(02) BEGIN;
(03) SELECT * FROM my_table WHERE id=$x;
(04) ...
(05) Auswertung und Flag setzen
(06) ...
(07) UPDATE my_table SET field1=$x1, field2=$x2, ... WHERE id=$1;
(08) ...
(09) je nach gesetztem Flag:
(10) COMMIT || ROLLBACK;

habe ich das so verstanden, daß jetzt die
Sperrung des Datensatzes mit id=$1 beim SELECT in Zeile (03) erfolgt
und nicht erst beim UPDATE in Zeile (07)
oder gar erst beim COMMIT in Zeile (10)

oder habe ich was falsch in
(14.2.11.3. InnoDB and TRANSACTION ISOLATION)
interpretiert?

Danke schon mal für die Hilfe

Andreas
(ich hoffe ich kriege nicht schon wieder einen Rüffel
wegen persönlicher Dummheit)