العودة إلى أسئلة قواعد البيانات
مركز المساعدة · الأسئلةقواعد البيانات1 دقائق قراءة

كيف أتجنب تنفيذ تغيير قاعدة البيانات نفسه مرتين؟

صمم عمليات الكتابة بحيث تكون إعادة المحاولة آمنة. استخدم مفتاحاً تجارياً فريداً ومعاملة عندما يجب نجاح تغييرات مترابطة معاً، وافحص النتيجة السابقة قبل تكرار عملية غير مؤكدة.

قواعد البيانات

اجعل إعادة المحاولة مقصودة

قد يترك انتهاء المهلة المستدعي غير متأكد من حفظ الكتابة. وقد يؤدي تكرار INSERT غير القابل للتكرار بأمان إلى سجل مكرر حتى لو نجح الطلب الأول. استخدم قيداً فريداً أو upsert إذا كان نموذج البيانات يسمح بذلك.

للتغييرات متعددة الخطوات، استخدم معاملة إذا كانت العملية تدعمها كي تُعتمد التغييرات معاً أو تُلغى معاً. اجعل العبارات محددة واربط القيم بدلاً من تركيب SQL من نص غير موثوق.

تحقق من النتيجة المحفوظة

قبل إعادة المحاولة بعد خطأ اتصال أو سير عمل، استعلم باستخدام معرف ثابت وافحص الصف الحالي. لا يعني انتهاء المهلة أن الكتابة لم تحدث؛ ميّز بين فشل الطلب والنتيجة المجهولة.

سجّل مفتاح العملية ومعلومات التغييرات في سجل التشغيل عند الحاجة. وللآثار الخارجية المرتبطة بالكتابة، استخدم قائمة إرسال أو انتقال حالة صريحاً لتجنب تكرار الإشعارات أو المدفوعات دون قصد.

العودة إلى أسئلة قواعد البيانات