Ponieważ chcesz wykonać transakcję rozproszoną , potrzebujesz protokołu zatwierdzania dwufazowego .
Rozpoczynasz transakcje w obu bazach jak zwykle, ale zamiast ich zatwierdzać, uruchamiasz
PREPARE TRANSACTION 'some_name';
Wykonuje wszystko, co może się nie powieść podczas zatwierdzenia i utrwala transakcje. Gdy to się powiedzie, uruchom następujące polecenia w obu bazach danych:
COMMIT PREPARED 'some_name';
aby zatwierdzić transakcje.
Jeśli coś się nie powiedzie podczas PREPARE TRANSACTION
, uruchamiasz następujące, aby pozbyć się już przygotowanych transakcji:
ROLLBACK PREPARED 'some_name';
Pamiętaj, że potrzebujesz oprogramowania do zarządzania transakcjami, jeśli korzystasz z przygotowanych transakcji, dzięki czemu wszelkie przygotowane transakcje, które pozostały po awarii lub innym nieoczekiwanym problemie, są niezawodnie usuwane. Przygotowane transakcje, które nie zostały zatwierdzone lub wycofane, pozostają na zawsze i z absolutną pewnością zniszczą Twoją bazę danych.