ANSIモードでは、トランザクションは常に暗黙的に開始され、明示的に閉じられます。
次のいずれかが生じると、トランザクションが開始します。
- セッション中の最初のSQLリクエストの実行
- 前のトランザクションを閉じた後の最初のリクエストの実行
COMMIT文またはROLLBACK/ABORT文はトランザクションを閉じます。
トランザクションにDDL文が含まれている場合(DATABASEおよびSET SESSIONもこのコンテキストではDDL文と見なされ、この範疇に入る)、その文は、トランザクションを閉じる文を除き、トランザクション内の最後の文でなければなりません。
リクエスト内でエラーが検出されると、そのリクエストはアボートされます。通常、トランザクション全体がアボートされるわけではありませんが、トランザクション全体のアボートを招く失敗もあります。エラー文が設定したロックは解除されません。
ANSIモードのセッションは、BEGIN TRANSACTION/END TRANSACTION文をサポートしません。