sasan_66
کاربر تازه وارد
- تاریخ عضویت
- 18 جولای 2006
- نوشتهها
- 450
- لایکها
- 0
سلام
توي يه كتاب MySQL يه مثال در مورد dirty read نوشته:
تراكنش اول مياد جدول رو تغيير ميده. تراكنش دوم مياد داده ها رو مي خونه. تراكنش اول بيخيال تغيير ميشه و rollback ميكنه!!. حالا مشكلي كه وجود داره اينه كه تراكنش دوم ممكنه داده هاي جدول رو طبق داده هايي كه قبلا خونده بود و الان اشتباه به حساب ميان تغيير بده.
حالا سوال
ميشه داخل يه تراكنش تراكنش ديگه اي انجام داد؟؟
من اومدم يه تراكنش رو شروع كردم. بعد اومدم تو اين تراكنش داده هاي يه فيلد رو يه واحد زياد كردم. بعد يه تراكنش ديگه شروع كردم. توي اون يه فيلدي رو 2 واحد زياد كردم. بعد rollback كردم. داده هايي كه 2 واحد زياد شده بودند برگشتند به حالت قبل از افزايش 2 واحديشون. يه بار ديگه rollback كردم. ولي هيچي نشد. انگار تراكنش اولي خودش اتوماتيك commit شد.
مشكل كجاست؟
توي يه كتاب MySQL يه مثال در مورد dirty read نوشته:
تراكنش اول مياد جدول رو تغيير ميده. تراكنش دوم مياد داده ها رو مي خونه. تراكنش اول بيخيال تغيير ميشه و rollback ميكنه!!. حالا مشكلي كه وجود داره اينه كه تراكنش دوم ممكنه داده هاي جدول رو طبق داده هايي كه قبلا خونده بود و الان اشتباه به حساب ميان تغيير بده.
حالا سوال
ميشه داخل يه تراكنش تراكنش ديگه اي انجام داد؟؟
من اومدم يه تراكنش رو شروع كردم. بعد اومدم تو اين تراكنش داده هاي يه فيلد رو يه واحد زياد كردم. بعد يه تراكنش ديگه شروع كردم. توي اون يه فيلدي رو 2 واحد زياد كردم. بعد rollback كردم. داده هايي كه 2 واحد زياد شده بودند برگشتند به حالت قبل از افزايش 2 واحديشون. يه بار ديگه rollback كردم. ولي هيچي نشد. انگار تراكنش اولي خودش اتوماتيك commit شد.
مشكل كجاست؟