با استفاده از تابع IS_FREE_LOCK وضعیت قفل با نام 'daily_job_lock' را بررسی کنید و خروجی‌ای شامل نام قفل و یک ستون متنی ('free' یا 'busy' یا 'unknown') نمایش دهید.

0.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:50

0.0

با استفاده از دستور SELECT و تابع سیستمی IS_FREE_LOCK('daily_job_lock') می‌توانید بفهمید قفل نام‌دار آزاد است یا خیر؛ مقدار 1 یعنی آزاد، 0 یعنی درگیر و NULL برای حالت نامشخص. برای نمایش خواناتر از یک CASE یا COALESCE استفاده کنید (مثلاً CASE WHEN IS_FREE_LOCK(...) = 1 THEN 'free' WHEN = 0 THEN 'busy' ELSE 'unknown' END). برای تست می‌توانید از GET_LOCK و RELEASE_LOCK برای گرفتن یا آزاد کردن قفل استفاده کنید؛ دقت کنید که قفل‌های نام‌دار در سطح سرور هستند و رفتار آنها وابسته به نشست‌ها و مجوزهاست.

توسط پژوهشگر در 220 روز قبل ساعت 01:50
دسته بندی ها: MySQL MySQL for beginner
sara در 220 روز قبل ساعت 11:53

نکته کلیدی این است که IS_FREE_LOCK('daily_job_lock') خروجی 1 = آزاد، 0 = درگیر، NULL = نامشخص می‌دهد؛ برای نمایش خوانا از CASE استفاده کنید، مثل CASE WHEN IS_FREE_LOCK(...) = 1 THEN 'free' WHEN IS_FREE_LOCK(...) = 0 THEN 'busy' ELSE 'unknown' END. قفل‌های نام‌دار در سطح سرور هستند و رفتارشان به نشست‌ها و مجوزها وابسته است، بنابراین برای اعتبارسنجی می‌توانید از GET_LOCK و RELEASE_LOCK هم استفاده کنید تا تغییر وضعیت را به‌طور هماهنگ تست کنید. همچنین به خاطر بسپارید که نقض همزمانی در محیط‌های چندنشستی ممکن است باعث خروجی‌های ناهم‌زمان شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری