Aangezien u een gedistribueerde transactie wilt uitvoeren , hebt u het tweefasige commit-protocol nodig .
U start transacties op beide databases zoals gewoonlijk, maar in plaats van ze vast te leggen, voert u
PREPARE TRANSACTION 'some_name';
Dit voert alles uit dat zou kunnen mislukken tijdens een vastlegging en houdt de transacties in stand. Als dat gelukt is, voer je het volgende uit op beide databases:
COMMIT PREPARED 'some_name';
om de transacties vast te leggen.
Als er iets niet lukt tijdens de PREPARE TRANSACTION
, voer je het volgende uit om reeds voorbereide transacties te verwijderen:
ROLLBACK PREPARED 'some_name';
Merk op dat je nodig transacrion manager software als u voorbereide transacties gebruikt, zodat voorbereide transacties die achterblijven na een crash of ander onverwacht probleem betrouwbaar worden opgeruimd. Voorbereide transacties die niet worden vastgelegd of teruggedraaid, blijven voor altijd bestaan en zullen met absolute zekerheid uw database breken.