برگزیده های پرشین تولز

dirty read

sasan_66

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

alik

کاربر قدیمی پرشین تولز
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
2,146
لایک‌ها
1,232
برای این مشکلات باید جدولی که کار میکنی را لاک کنی که بقیه تغییر ندن و کارت که تموم شد باز کنیش برای رول بک کردن هم میتونی بگی از کجا نگهداره تعییرات رو و تا زمانیکه دستور اعمال ندادی اون تغییرات قابل بازگشت هستند ...
 

sasan_66

کاربر تازه وارد
تاریخ عضویت
18 جولای 2006
نوشته‌ها
450
لایک‌ها
0
ممنون آقا مهدي كه تاپيكو باز كردين
خوب من پرسيدم ممكنه يه تراكنش رو داخل تراكنش ديگه اجرا كرد؟
 
بالا