Zabránění phantom reads jen u vybraných řádků
Potřebuješ analyzovat data o bankovních zákaznících s customer_id od 1 do 10. Chceš zamknout pouze ty řádky tabulky customers, jejichž customer_id leží v rozsahu 1 až 10. Tím zajistíš, že nikdo nebude moci tyto řádky změnit, zatímco ostatní transakce budou moci pracovat se zbytkem tabulky.
Nejdříve vyber zákazníky a proveď nad nimi několik matematických operací. (Na samotných operacích nám v tomto cvičení nezáleží.) Poté zákazníky s customer_id od 1 do 10 vyber znovu a ověř, že se nic nezměnilo.
Jak takový skript připravíš?
Toto cvičení je součástí kurzu
Transakce a zpracování chyb v SQL Serveru
Pokyny k cvičení
- Nastav odpovídající úroveň izolace, která zabrání phantom reads.
- Začni transakci.
- Vyber zákazníky, které chceš zamknout.
- Transakci potvrď.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
-- Set the appropriate isolation level
___ ___ ___ ___ ___
-- Begin a transaction
___ ___
-- Select customer_id between 1 and 10
SELECT *
FROM customers
___ customer_id ___ ___ AND ___;
-- After completing some mathematical operation, select customer_id between 1 and 10
SELECT *
FROM customers
___ customer_id ___ ___ AND ___;
-- Commit the transaction
___ ___