タグ

japaneseとsavepointに関するmasterqのブックマーク (1)

  • トランザクションをネストしたらどうなる? 内側だけロールバックできる? - Qiita

    トランザクションはRDBに対するひとかたまりの操作です。だから来入れ子も何もなく、始まりと終わりが一個ずつあるだけです。以上。 …で終わらせられないのは、それでもネストが必要になる場面があるからですね。 ありがちなのは、トランザクション開始終了処理まで込みのアプリケーション側関数・メソッドやストアドプロシージャの存在。こうした関数を、まあ関数ですから部品的に扱おうとするとトランザクションが開始した文脈下でこうした関数が呼び出されて入れ子のサブトランザクションスタート、ってことになったりします。 サブトランザクションのコミットは問題ない BEGIN TRANSACTION; INSERT ... 'A'); BEGIN TRANSACTION; INSERT ... 'B'); COMMIT TRANSACTION; INSERT ... 'C'); COMMIT TRANSACTION;

    トランザクションをネストしたらどうなる? 内側だけロールバックできる? - Qiita
    masterq
    masterq 2021/01/18
    トランザクションのネストさんDBの実装依存。。。厳しい。。。
  • 1