الأقفال على مستوى الصف
في هذا الدرس 4 موضوعات
هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
lock rows explicitly when needed.
الموضوعات المخطط لها
SELECT ... FOR UPDATElocks the selected rows until the transaction ends; others wait on writes or on their ownFOR UPDATE.FOR SHAREblocks writers but allows other readers withFOR SHARE.NOWAITfails immediately;SKIP LOCKEDskips locked rows.- Prefer an atomic
UPDATE ... SET qty = qty - 1 WHERE qty > 0when it is enough: no lock dance and no round trip. - Keep locking transactions short and lock rows in a consistent order.
تفاصيل المخطط المبدئي
عرض عملي
BEGIN;
SELECT qty FROM stock WHERE product_id = 7 FOR UPDATE;
UPDATE stock SET qty = qty - 1 WHERE product_id = 7;
COMMIT;اختبر فهمك
What happens to a second FOR UPDATE on the same row?
أظهر الإجابة
It waits until the first transaction ends.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.