Kapitel 20. Durchführung von Transaktionen
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
20.0 Einleitung
Der MySQL-Server kann mehrere Clients gleichzeitig bearbeiten weil er multithreaded ist. Um mit Konflikten zwischen den Clients umzugehen, führt der Server alle notwendigen Sperrungen durch, damit nicht zwei Clients gleichzeitig dieselben Daten ändern können. Wenn der Server SQL-Anweisungen ausführt, ist es jedoch sehr gut möglich, dass aufeinanderfolgende Anweisungen von einem bestimmten Client mit Anweisungen von anderen Clients verschachtelt werden. Wenn ein Client mehrere Anweisungen ausführt, die voneinander abhängig sind, kann die Tatsache, dass andere Clients zwischen diesen Anweisungen Tabellen aktualisieren, zu Schwierigkeiten führen.
Anweisungsfehler können ebenfalls problematisch sein, wenn eine Operation mit mehreren Anweisungen nicht zu Ende geführt wird. Angenommen, eine Tabelle flight
enthält Informationen über Flugpläne von Fluggesellschaften und du möchtest die Zeile für Flug 578 aktualisieren, indem du einen Piloten aus den verfügbaren auswählst. Du könntest dies mit den folgenden drei Anweisungen tun:
SET
@
p_val
=
(
SELECT
pilot_id
FROM
pilot
WHERE
available
=
'yes'
LIMIT
1
);
UPDATE
pilot
SET
available
=
'no'
WHERE
pilot_id
=
@
p_val
;
UPDATE
flight
SET
pilot_id
=
@
p_val
WHERE
flight_id
=
578
;
Die erste Anweisung wählt einen verfügbaren Piloten aus, die zweite markiert den Piloten ...
Get MySQL Kochbuch, 4. Auflage now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.