ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 SQLリファレンス

3.62 SET TRANSACTION文

機能

トランザクションモードを切り替えます。

記述形式

構文の構成

一般規則

トランザクションモード
  • 同じトランザクションモードは2つ以上指定することはできません。

  • トランザクションモードは、SET TRANSACTION文によってのみ変更可能です。それ以外の契機で変更されることはありません。

READ ONLYおよびREAD WRITE(トランザクションアクセスモード)
  • READ ONLYを指定した場合、トランザクションアクセスモードは、読込み専用モードになります。READ ONLYは、トランザクション内で更新系のSQL文を許しません。

  • READ WRITEを指定した場合、トランザクションアクセスモードは更新可能になります。

  • トランザクションアクセスモードを省略した場合は、READ WRITEとなります。

READ UNCOMMITTED
  • READ UNCOMMITTEDを指定した場合、ほかのトランザクションで追加および更新されたデータをそのトランザクションがCOMMITされる前に検索することができます。
    ただし、以下の条件の時は、直前の検索結果と異なる結果を得る場合があります。

    • ほかの利用者の更新系のトランザクションがCOMMITされる前に、その更新したデータの検索をした場合

    • 検索後のデータにほかの利用者が更新および削除をしてCOMMITした場合

    • 探索条件を指定したSQL文を実行し、その後、ほかの利用者が探索条件に一致した行を追加した場合

READ COMMITTED
  • READ COMMITTEDを指定した場合、ほかのトランザクションで追加および更新されたデータはそのトランザクションがCOMMITするまで検索することはできません。
    ただし、検索する表が、DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の場合には、ほかのトランザクションがCOMMITするまでの間は、追加および更新がなされる前のデータを検索することができます。

    いずれの場合も、以下の条件の時は、直前の検索結果と異なる結果を得る場合があります。

    • 検索後のデータにほかの利用者が更新および削除をしてCOMMITした場合

    • 探索条件を指定したSQL文を実行し、その後、ほかの利用者が探索条件に一致した行を追加した場合

REPEATABLE READ
  • REPEATABLE READを指定した場合、ほかのトランザクションで追加および更新されたデータはそのトランザクションがCOMMITするまで検索することはできません。
    ただし、以下の条件の時は、直前の検索結果と異なる結果を得る場合があります。

    • 探索条件を指定したSQL文を実行し、その後、ほかの利用者が探索条件に一致した行を追加した場合

SERIALIZABLE
  • SERIALIZABLEを指定した場合、ほかのトランザクションで追加および更新されたデータは、そのトランザクションがCOMMITされるまで検索することはできません。

使用例

読込み専用モードでREAD COMMITTEDを指定した場合の例を示します。

SET TRANSACTION READ ONLY,
    ISOLATION LEVEL READ COMMITTED