機能
トランザクションモードを切り替えます。
記述形式
一般規則
動作環境ファイルのR_LOCKがNOの場合、SET TRANSACTION文にREPEATABLE READを指定しても、独立性水準はSERIALIZABLEになります。
動作環境ファイルのR_LOCKがYESの場合、SET TRANSACTION文にSERIALIZABLEを指定しても、独立性水準はREPEATABLE READになります。
同じトランザクションモードは2つ以上指定することはできません。
トランザクションモードは、SET TRANSACTION文によってのみ変更可能です。それ以外の契機で変更されることはありません。
READ UNCOMMITTEDを指定した場合、ほかのトランザクションで追加および更新されたデータをそのトランザクションがCOMMITされる前に検索することができます。
ただし、以下の条件の時は、直前の検索結果と異なる結果を得る場合があります。
ほかの利用者の更新系のトランザクションがCOMMITされる前に、その更新したデータの検索をした場合
検索後のデータにほかの利用者が更新および削除をしてCOMMITした場合
探索条件を指定したSQL文を実行し、その後、ほかの利用者が探索条件に一致した行を追加した場合
READ COMMITTEDを指定した場合、ほかのトランザクションで追加および更新されたデータはそのトランザクションがCOMMITするまで検索することはできません。
ただし、検索する表が、DSO定義でPRECEDENCE(1)が指定されたSEQUENTIAL構造の場合には、ほかのトランザクションがCOMMITするまでの間は、追加および更新がなされる前のデータを検索することができます。
いずれの場合も、以下の条件の時は、直前の検索結果と異なる結果を得る場合があります。
検索後のデータにほかの利用者が更新および削除をしてCOMMITした場合
探索条件を指定したSQL文を実行し、その後、ほかの利用者が探索条件に一致した行を追加した場合
使用例
読込み専用モードでREAD COMMITTEDを指定した場合の例を示します。
SET TRANSACTION READ ONLY, ISOLATION LEVEL READ COMMITTED