انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهMID-015-L03

الأقفال على مستوى الصف

  • الدرس 3 من 7
  • Mid-level
في هذا الدرس 4 موضوعات

هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.

نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.

في هذا الدرس

lock rows explicitly when needed.

الموضوعات المخطط لها

  • SELECT ... FOR UPDATE locks the selected rows until the transaction ends; others wait on writes or on their own FOR UPDATE.
  • FOR SHARE blocks writers but allows other readers with FOR SHARE.
  • NOWAIT fails immediately; SKIP LOCKED skips locked rows.
  • Prefer an atomic UPDATE ... SET qty = qty - 1 WHERE qty > 0 when it is enough: no lock dance and no round trip.
  • Keep locking transactions short and lock rows in a consistent order.
تفاصيل المخطط المبدئي

عرض عملي

sql
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.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.

اكتب للبحث في المستويات والمراحل والوحدات والدروس.