説明
このステートメントは、XAトランザクション(分散トランザクション)の管理に使用されます。
構文
xa_transaction_stmt:
xa_start_stmt
| xa_end_stmt
| xa_prepare_stmt
| xa_commit_stmt
| xa_rollback_stmt
| xa_recover_stmt
xa_start_stmt:
XA {START | BEGIN} xid;
xa_end_stmt:
XA END xid [SUSPEND [FOR MIGRATE]];
xa_prepare_stmt:
XA PREPARE xid;
xa_commit_stmt:
XA COMMIT xid [ONE PHASE];
xa_rollback_stmt:
XA ROLLBACK xid;
xa_recover_stmt:
XA RECOVER [CONVERT XID];
パラメータの説明
xa_start_stmt
XA {START | BEGIN} xid:このステートメントは、新しいXAトランザクションを開始するか、既存のXAトランザクションに参加または復旧するために使用されます。
START | BEGIN:XAトランザクションを開始するステートメントを示します。STARTとBEGINは同じ意味です。xid:XAトランザクションのグローバル一意識別子を示します。
xa_end_stmt
XA END xid [SUSPEND [FOR MIGRATE]]:このステートメントは、XAトランザクションを終了するために使用されます。移行のためにXAトランザクションを一時停止することができます。
xid:終了するXAトランザクションのグローバル一意識別子を示します。SUSPEND [FOR MIGRATE]:オプション項目であり、関連する構文のみをサポートしており、機能は有効ではありません。
xa_prepare_stmt
XA PREPARE xid:このステートメントは、リソースマネージャーにXAトランザクションのコミット準備を通知するために使用されます。
xid:コミット準備を行うXAトランザクションのグローバル一意識別子を示します。
xa_commit_stmt
XA COMMIT xid [ONE PHASE]:このステートメントは、準備済みのXAトランザクションをコミットするために使用されます。
xid:コミットするXAトランザクションのグローバル一意識別子を示します。ONE PHASE:オプション項目であり、単一フェーズコミットを使用することを示します。
xa_rollback_stmt
XA ROLLBACK xid:このステートメントは、XAトランザクションをロールバックするために使用されます。
xid:ロールバックするXAトランザクションのグローバル一意識別子を示します。
xa_recover_stmt
XA RECOVER [CONVERT XID]:このステートメントは、準備済みのXAトランザクション情報を取得するために使用されます。
CONVERT XID:オプション項目であり、xid形式を変換することを示します。
例
テーブル
tbl1を作成します。CREATE TABLE tbl1 (col1 INT, col2 INT);トランザクションを開始します。
XA START 'xa_tbl1';テーブル
tbl1にデータを挿入します。INSERT INTO tbl1 VALUES (1, 1);XAトランザクションを終了し、移行のために一時停止します。
XA END 'xa_tbl1';XAトランザクションを準備します。
XA PREPARE 'xa_tbl1';XAトランザクションをコミットします。
XA COMMIT 'xa_tbl1';テーブル
tbl1のデータを確認します。SELECT * FROM tbl1;実行結果は次のとおりです:
+------+------+ | col1 | col2 | +------+------+ | 1 | 1 | +------+------+ 1 row in set