آژانس هواپیماییexchanging

dirty read

شروع موضوع توسط sasan_66 ‏25 اکتبر 2007 در انجمن PHP

  1. sasan_66

    sasan_66 کاربر تازه وارد

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

    alik کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏23 سپتامبر 2005
    نوشته ها:
    2,148
    تشکر شده:
    1,226
    برای این مشکلات باید جدولی که کار میکنی را لاک کنی که بقیه تغییر ندن و کارت که تموم شد باز کنیش برای رول بک کردن هم میتونی بگی از کجا نگهداره تعییرات رو و تا زمانیکه دستور اعمال ندادی اون تغییرات قابل بازگشت هستند ...
     
  3. sasan_66

    sasan_66 کاربر تازه وارد

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