START TRANSACTION

名前

START TRANSACTION -- トランザクションブロックを開始する

概要

START TRANSACTION [ transaction_mode [, ...] ]

transaction_modeには以下のいずれかが入ります。

    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
    READ WRITE | READ ONLY

説明

このコマンドは新しいトランザクションブロックを開始します。 隔離レベルや読み取り/書き込みモードを指定すると、SET TRANSACTIONが実行された時のように、新しいトランザクションはそれらの特性を持ちます。 このコマンドの機能は、BEGINコマンドと同じです。

パラメータ

この文のパラメータの意味についてはSET TRANSACTIONを参照してください。

互換性

標準SQLでは、トランザクションブロック開始時のSTART TRANSACTIONコマンドの発行は必須ではありません。 任意のSQLコマンドが暗黙的にブロックを開始するからです。 PostgreSQLでは、START TRANSACTION(もしくはBEGIN)が実行されていない状態で発行されたコマンドは、その直後に、暗黙的なCOMMITが発行されたかのように動作します。 これは"自動コミット"と呼ばれます。 他のリレーショナルデータベースシステムの中にも、簡便性のために自動コミット機能を提供しているものもあります。

標準SQLでは、連続するtransaction_modesの間にはカンマが必須です。 しかし、PostgreSQLでは歴史的な理由によりカンマを省略することができます。

SET TRANSACTIONの互換性の節も参照してください。

関連項目

BEGIN, COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION