Vì bạn muốn thực hiện giao dịch phân tán , bạn cần giao thức cam kết hai giai đoạn .
Bạn bắt đầu giao dịch trên cả hai cơ sở dữ liệu như bình thường, nhưng thay vì cam kết chúng, bạn chạy
PREPARE TRANSACTION 'some_name';
Điều này thực hiện mọi thứ có thể thất bại trong quá trình cam kết và tiếp tục các giao dịch. Khi đã thành công, bạn chạy như sau trên cả hai cơ sở dữ liệu:
COMMIT PREPARED 'some_name';
để thực hiện các giao dịch.
Nếu bất cứ điều gì không thành công trong quá trình PREPARE TRANSACTION
, bạn chạy như sau để thoát khỏi các giao dịch đã được chuẩn bị sẵn:
ROLLBACK PREPARED 'some_name';
Lưu ý rằng bạn cần phần mềm quản lý transacrion nếu bạn sử dụng các giao dịch đã chuẩn bị để mọi giao dịch đã chuẩn bị bị bỏ lại sau sự cố hoặc sự cố không mong muốn khác đều được dọn dẹp một cách đáng tin cậy. Các giao dịch đã chuẩn bị trước không được cam kết hoặc quay trở lại sẽ tồn tại mãi mãi và chắc chắn tuyệt đối sẽ phá vỡ cơ sở dữ liệu của bạn.