PREPARE TRANSACTION
Description
Prepares the current transaction for two-phase commit.
After this statement, the transaction is no longer associated with the current session; instead, its state is fully stored on disk, and there is a high probability that it can be committed successfully, even if a database crash occurs before the commit is requested.
Once prepared, a transaction can later be committed or rolled back with COMMIT PREPARED or ROLLBACK PREPARED, respectively. Those statements can be issued from any session, not only the one that executed the original transaction.
From the point of view of the issuing session, PREPARE TRANSACTION is not unlike a ROLLBACK statement: after executing it, there is no active current transaction, and the effects of the prepared transaction are no longer visible. (The effects will become visible again if the transaction is committed.)
If the PREPARE TRANSACTION statement fails for any reason, it becomes a ROLLBACK and the current transaction is canceled.
Precautions
- The transaction function is maintained automatically by the database, and should be not visible to users.
- When running the PREPARE TRANSACTION statement, increase the value of max_prepared_transactions in configuration file gaussdb.conf. You are advised to set it to a value not less than that of max_connections so that one pending prepared transaction is available for each session.
Syntax
PREPARE TRANSACTION transaction_id;
Parameters
- transaction_id
Specifies an arbitrary identifier that later identifies this transaction for COMMIT PREPARED or ROLLBACK PREPARED. The identifier must be different from those for current prepared transactions.
Value range: The identifier must be written as a string literal, and must be less than 200 bytes long.
Examples
-- Start. gaussdb=# BEGIN; BEGIN -- Prepare a transaction whose identifier is trans_test. gaussdb=# PREPARE TRANSACTION 'trans_test'; PREPARE TRANSACTION -- Cancel the transaction whose identifier is trans_test. gaussdb=# ROLLBACK PREPARED 'trans_test'; ROLLBACK PREPARED
Helpful Links
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot