BEGIN¶
現在のセッションでトランザクションを開始します。
START TRANSACTION は BEGIN の同義語です。
- こちらもご参照ください。
構文¶
パラメーター¶
WORK | TRANSACTION他のデータベースシステムとの互換性を提供するオプションのキーワード。
NAME nameトランザクションに名前を割り当てるオプションの文字列。名前はトランザクションの識別に役立ちますが、必須ではなく、一意である必要もありません。
使用上の注意¶
すべてのトランザクションには、システムによって生成された内部 ID があります。トランザクション ID は、符号付き64ビット(ロング)整数です。値の範囲は、-9,223,372,036,854,775,808(-2 63)から9,223,372,036,854,775,807(2 63 - 1)です。
トランザクションの名前を指定する場合、 NAME キーワードが必要です。
名前が指定されていない場合、システム生成の名前がトランザクションに割り当てられます。
トランザクションを完了するには、COMMIT または ROLLBACK コマンドを明示的に実行する必要があります。これらのコマンドのいずれかが実行されるまで、トランザクションは未処理の状態のままです。
SQL ステートメントが明示的なトランザクション内でストリームをクエリすると、ストリームはステートメントが実行されたときではなく、トランザクションが開始されたときのストリームアドバンスポイント(つまり、タイムスタンプ)でクエリされます。この動作は、DMLステートメントと、既存のストリームの行を新しいテーブルに取り込むCREATE TABLE ... AS SELECT (CTAS)ステートメントの両方に関係します。
2つの BEGIN ステートメントが連続して実行された場合(同じ スコープ 内)、2番目のステートメントは無視されます。たとえば、次のコードでは、2番目と3番目の BEGINs は効果がありません。既存のオープントランザクションは続行されます。
自律スコープトランザクションとストアドプロシージャ を使用している場合、ルールはより複雑になる可能性があります。
例¶
トランザクションを開始します。
トランザクションにシステムが割り当てた名前
56cb9163-77a3-4223-b3e0-aa24a20540a3を記録してください。
指定された名前でトランザクションを開始します。
この例は前の例と同じですが、 BEGIN の代わりに START TRANSACTION を使っています。