タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

Qiitaとトランザクションに関するsatoshieのブックマーク (1)

  • メモ: DBでrollbackしてもauto_incrementが戻らない理由 - Qiita

    背景 Rspecでテストを書いていて、sqliteで通っていたがMySQLにすると通らない エラーを見てみるとidを指定してDBから値を取って来ている処理で、データがが無いと怒られている テストとして、auto_increment指定しているidが1に戻っている事を期待しているが、戻っていない しっかりとそこを考えた事がなかったが、ググってみると以下の内容がしっくり来たのでメモとして残す もしシーケンスがロールバックされうるとしたら、シーケンスを使ってINSERTしているトランザクションが実行中だった場合、それが終了するまではシーケンスが次に何の数字を吐き出すか確定できません。すると、他のトランザクションが単に連番を生成するためだけにブロックされてしまうのです。 RDBの世界で主キーに期待されていることはユニークなことだけであり、連続であることは期待されていません(どうせDELETEで抜け

    メモ: DBでrollbackしてもauto_incrementが戻らない理由 - Qiita
  • 1