DBのトランザクション処理って必要なのは分かるけど、実際問題ロールバックする時ってあんの?どんな時にロールバック起きるわけ?
一意制約違反とか、NotNull制約違反とか、外部キー制約違反とか色々あるだろ。とはいえ、ロールバックが発生する=プログラムのバグであるケースが大半だから、原則としてロールバックが発生しないように組むよね。ロールバックはそれでも紛れ込んだバグがデータに悪影響を与えないようにするための最終防護壁みたいなもんだね。
だよね、だよね。バリデーション通らない時って感じだよね? あとは運悪く処理中に停電起きた時とかなの?
処理中に停電が起きてDBが動いてるサーバが停止した、という状況ならそもそもサーバが動いてないので、ロールバックすら走らないねぇ...まぁ、サーバ再起動時に自動的にロールバックされるから、間違ってもいないか。.ざっくり言えば、「バリデーション通らない場合」という認識でおk
あ、そっか笑
その認識でオッケーなのね!ありがとう!勉強になりまちた♪
DBも結局はテキストファイルなので、壊れる事がある。
自分が扱ったことがあるDBのデータファイルは全てバイナリデータだったけど、どのDBがテキストファイルにデータを保存してるか教えてくれる?
バイナリデータもテキストファイルの一種という意味で言ってるんだけど。音声や画像も含めて。
みんなの回答 2 件
一意制約違反とか、NotNull制約違反とか、外部キー制約違反とか色々あるだろ。
とはいえ、ロールバックが発生する=プログラムのバグであるケースが大半だから、原則としてロールバックが発生しないように組むよね。
ロールバックはそれでも紛れ込んだバグがデータに悪影響を与えないようにするための最終防護壁みたいなもんだね。
DBも結局はテキストファイルなので、壊れる事がある。
関連するトピックス