Datenbanken · Middle · Frage 18 von 75
Was ist ein „Lost Update“, und wie verhindert man es?
-- Two requests at the same time:
SELECT balance FROM accounts WHERE id = 1; -- both read 100
UPDATE accounts SET balance = 150 WHERE id = 1; -- +50
UPDATE accounts SET balance = 130 WHERE id = 1; -- +30- 1Zwei Schreiber kollidieren; einen Index auf
balanceanlegen - 2Eine Änderung überschreibt eine andere; atomares Update nutzen
- 3In PostgreSQL kann es auf keiner Isolationsstufe passieren
Antwort zeigen
Richtige Antwort: Eine Änderung überschreibt eine andere; atomares Update nutzen
Erklärung
Lesen-Ändern-Schreiben im Anwendungscode ist die klassische Quelle. Lass die Datenbank rechnen oder sperre bzw. versioniere die Zeile.