اجرای 2 کوئری بصورت همزمان( atomicity )

bono056

Member
سلام
برای جداناپذیر کردن 2 یا چند کوئری (که یا همشون اجرا بشن یا هیچ کدوم - اگه مثلا تماس کاربر وسط کار قطع شد و تا اون لحظه فقط اولین کوئری اجرا شده بود کوئری اول هم rollback بشه) کسی توضیح میده؟
من جایی خوندم این موضوع فقط برای انواع خاصی از جدول های mysql امکان داره که MyISAM جزئشون نیست. این موضوع در خیلی برنامه بشدت حیاتیه. راه حل دیگه ای هست؟
 
آخرین ویرایش:

mehrabadi

Member
گاهي اوقات دستوراتي داريم كه صرفت بايد با هم بر روي سرور اجرا شوند و اجراي هريك بدون ديگري صحيح نيست .
فرض كنيد مي خواهيم مبلغي را از يك حساب به حساب ديگر منتقل كنيم . حال پول را از حساب اولي كم مي كنيم و به حساب ديگري اضافه مي كنيم.
اگر در بين اين دو كار مشكلي براي سرور پيش بيايد عملا فعاليت درست انجام نشده.
خوشبختانه در پي اچ پي راه حل جالبي وجود دارد.
ما بايد براي اين كار از ساختار زير استفاده كنيم :
Begin ;
Update ..... ;
Update ..... ;
Commit;

هنگامي كه از ساختار فوق استفاده كنيم تا دستور Commit اجرا نشود تغييرات در بانك اطلاعاتي ثبت نمي شود.
اميدوارم پاسخ سئوالتان را گرفته باشيد.
 

جدیدترین ارسال ها

بالا