メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

BEGIN

トランザクションを開始します。START TRANSACTION と同義です。

トランザクションは、1 つのコマンドまたは複数のコマンドから構成される、1 つの論理的作業単位です。一般に、トランザクションのすべてのコマンドはデータベースのスナップショットに対して実行されます。その開始時刻は、transaction_snapshot_begin システム設定パラメーターの値セットで指定されます。

デフォルトでは、個々の Amazon Redshift 操作 (クエリ、DDL ステートメント、ロード) はデータベースに自動的にコミットされます。後続の作業が完了するまでオペレーションのコミットを停止する場合、BEGIN ステートメントでトランザクションを開き、必要なコマンドを実行し、COMMIT または END ステートメントでトランザクションを閉じます。必要に応じて、ROLLBACK ステートメントを使用して、進行中のトランザクションを中止できます。この動作の例外は TRUNCATE コマンドです。このコマンドは実行されているトランザクションをコミットします。ロールバックすることはできません。

構文

Copy
BEGIN [ WORK | TRANSACTION ] [ ISOLATION LEVEL option ] [ READ WRITE | READ ONLY ] START TRANSACTION [ ISOLATION LEVEL option ] [ READ WRITE | READ ONLY ] Where option is SERIALIZABLE | READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ Note: READ UNCOMMITTED, READ COMMITTED, and REPEATABLE READ have no operational impact and map to SERIALIZABLE in Amazon Redshift.

パラメーター

WORK

オプションキーワード

TRANSACTION

オプションキーワード。WORK と TRANSACTION は同義語です。

ISOLATION LEVEL SERIALIZABLE

デフォルトでシリアル化可能な分離がサポートされているため、この構文がステートメントに含まれているかどうかに関係なく、トランザクションの動作は同じです。「同時書き込み操作を管理する」を参照してください。他の分離レベルはサポートされていません。

注記

SQL 標準では、ダーティリード (トランザクションが未コミットの同時トランザクションによって書き込まれたデータを読み取ります)、非再現リード (トランザクションが以前に読み取ったデータを再読み取りし、初回読み取り後にコミットされた別のトランザクションによってデータが変更されたことを検出します)、およびファントムリード (トランザクションがクエリを再実行し、検索条件を満たす行セットを返した後、最近コミットされた別のトランザクションのために行セットが変更されていることを検出します) を避けるため、4 つのレベルのトランザクション分離を定義しています。

  • 未コミット読み取り: ダーティリード、非再現リード、およびファントムリードの可能性があります。

  • コミット済み読み取り: 非再現リードおよびファントムリードの可能性があります。

  • 再現可能読み取り: ファントムリードの可能性があります。

  • シリアル化可能: ダーティリード、非再現リード、およびファントムリードを防止します。

4 つのトランザクション分離レベルのいずれも使用できますが、Amazon Redshift ではすべての分離レベルをシリアル化可能として処理します。

READ WRITE

トランザクションに読み取り書き込み権限を与えます。

READ ONLY

トランザクションに読み取り専用権限を与えます。

次の例では、シリアル化可能なトランザクションブロックを開始します。

Copy
begin;

次の例では、シリアル化可能分離レベルと読み取り書き込み権限を持つトランザクションブロックを開始します。

Copy
begin read write;

このページの内容: