Phantom Reads nur für einige Zeilen verhindern
Du musst einige Daten zu deinen Bankkundinnen und -kunden mit der customer_id zwischen 1 und 10 analysieren. Du willst nur die Zeilen der Tabelle customers mit der customer_id zwischen 1 und 10 sperren. So stellst du sicher, dass niemand diese Zeilen ändern kann, und erlaubst anderen Transaktionen, mit dem Rest der Tabelle zu arbeiten.
Du musst die Kundinnen und Kunden auswählen und erneut einige mathematische Operationen ausführen. (Darauf konzentrieren wir uns in dieser Übung nicht.) Danach willst du die Kundinnen und Kunden mit der customer_id zwischen 1 und 10 erneut auswählen, um sicherzustellen, dass sich nichts geändert hat.
Wie bereitest du das Skript vor?
Diese Übung ist Teil des Kurses
Transaktionen und Fehlerbehandlung in SQL Server
Anleitung zur Übung
- Lege die passende Isolationsebene fest, um Phantom Reads zu verhindern.
- Starte eine Transaktion.
- Wähle die Kundinnen und Kunden aus, die du sperren willst.
- Bestätige die Transaktion mit COMMIT.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
-- 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
___ ___