PDA

View Full Version : سوال: قفل کردن یک رکورد یا یک سطر



Jason.Bourne
پنج شنبه 16 آذر 1391, 16:35 عصر
در MySQL آیا این امکان هست که یک سطر یا یک رکورد را قفل کرد؟ در صورتیکه این امکان وجود ندارد، باید چکار کرد؟

سعید صابری
پنج شنبه 16 آذر 1391, 19:39 عصر
بهترین راه اینه که فیلد تعریف کن مثلا از نوع عددی وقتی می خوای رکورد قفل بشه یک عدد بهش اختصاص بدی مثلا صفر.هنگام تغییر چک کنی اگه صفر بود تغییر نکنه

Jason.Bourne
پنج شنبه 16 آذر 1391, 20:15 عصر
بهترین راه اینه که فیلد تعریف کن مثلا از نوع عددی وقتی می خوای رکورد قفل بشه یک عدد بهش اختصاص بدی مثلا صفر.هنگام تغییر چک کنی اگه صفر بود تغییر نکنه

به نظر نمیاد که بهترین راه باشه.
آخه:
1- اینطوری تعداد پرس و جوها بیشتر میشه.
2- ممکنه برخی از رکورد ها در حالت قفل باقی بمونه.
3- کاربر هایی که به رکورد قفل شده برخورد میکنند، باید با پیغام خطا مواجه شوند (مبنی بر در دسترس نبودن رکورد مورد نظرشون). اما اگر اصولی قفل بشه، کاربر منتظر میمونه تا قفل آزاد بشه.

سعید صابری
پنج شنبه 16 آذر 1391, 22:14 عصر
ولی تعداد پرس و جوها بیشتر نمیشه فقط یک شرط اضافه میشه و در ضمن می تونی برای راحتی کار از sp استفاده کنی که در کل کدنویسی کمتر میشه.
برای رکورد نیست ولی تیبل می تونی قفل یا باز کنی.با این توضیحاتی که دادی فکر کنم باید از قفل تیبل استفاده کنی که میتونی محدود کنی در آن واحد یک کاربر بتونه تیبل را تغییر بده.
اگه دقیق تر بگی می خوای چیکار کنی؟ شاید بشه بهتر کمکت کرد

Jason.Bourne
پنج شنبه 16 آذر 1391, 23:03 عصر
من یک رکورد دارم که از یک عدد تشکیل میشه (مثلا 1500 که واحدش هر چیزی میتونه باشه). کاربر های مختلف بر اساس نیازشون از این مقدار استفاده می کنند (عدد مورد نظرشون از این مقدار کاسته میشود). من باید کاری کنم که مقدار درخواستی کاربر از مقدار اصلی رکورد (1500) کمتر یا مساوی باشه. پس باید زمانیکه کاربر A در حال دسترسی به این رکورد هست، کاربرهای دیگه نتوانند از این مقدار استفاده کنند. درسته؟