Začněte nyníZačněte zdarma

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

Zobrazit kurz

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
___ ___
Upravit a spustit kód