Two-Phase Commit¶
Exemple de Transaction Préparée¶
Tout commence comme une transaction normale :
test=# BEGIN;
BEGIN
test=# DELETE from stock;
DELETE 1000000
test=# PREPARE TRANSACTION 'b';
PREPARE TRANSACTION
La transaction est terminée par l’ordre PREPARE TRANSACTION
. Dans les faits, cela donne un résultat similaire à un ROLLBACK
:
La transaction n’a pas été effectuée.
On peut alors lancer d’autres transactions sans problèmes :
test=# BEGIN; SELECT now(); COMMIT;
BEGIN
now
-------------------------------
2010-02-24 16:55:35.961911+01
(1 row)
COMMIT
On peut ensuite à tout moment décider d’appliquer la transaction préparée :