5.7.1 ROLLBACK文の形式と規則
(1) 機能
現在のトランザクションを取り消して,そのトランザクション内でのデータベースの更新を無効にします。
(2) 使用権限
なし。
(4) オペランド
(a) WORK
指定しても,指定しなくてもトランザクションの取り消しの機能は変わりません。JIS規格と互換のためサポートしています。
(b) RELEASE
トランザクションを取り消して,データベースの更新を無効にした後に,UAPをHiRDBから切り離す場合に指定します。
(5) 共通規則
-
ROLLBACK文を実行すると,開いているカーソルはすべて閉じられます。
-
現行トランザクション中での排他制御は解除されます。ただし,UNTIL DISCONNECT指定のLOCK TABLE文による排他制御は解除されません。
-
定義系SQLは,ロールバックの対象にはなりません。
-
ホールダブルカーソル指定の動的SELECT文の前処理については,現行トランザクション中に前処理された場合は無効とし,それ以外は有効とします。
-
ROLLBACK文を実行すると,有効な位置付け子はすべて無効となります。
-
RELEASEを省略したROLLBACK文を実行すると,ON COMMIT DELETE ROWSを指定して定義した一時表の行データは削除されます。RELEASEを指定したROLLBACK文を実行すると,ON COMMITの指定に関係なく,一時表の行データは削除されます。
(6) 留意事項
-
ROLLBACK文は,OLTP下のX/Openに従ったUAPから指定できません。また,OLTP下のUAPから手続きを呼び出す場合,ROLLBACK文を使用した手続きは実行できません。
-
手続き中からROLLBACK文を実行する場合,RELEASEオペランドは指定できません。
-
ROLLBACK文は,トリガの動作中は実行できません。
(7) 使用例
-
現在のトランザクションを取り消します。
ROLLBACK
-
手続き内,又は手続き終了後にトランザクションを取り消します。