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

لماذا يُمنع تحديث قاعدة البيانات من دون مرشح؟

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

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

كيف يعمل فحص الحماية

في MongoDB، قد يطابق المرشح الفارغ كل مستندات المجموعة. وفي SQL، يمكن لأمر UPDATE أو DELETE من دون WHERE أن يغير أو يحذف كل صفوف الجدول المستهدف. تكتشف أداة التخزين هذه العمليات غير المقيدة وتطلب تأكيداً صريحاً باستخدام `all: true` قبل تنفيذها.

لا يقرر هذا الفحص ما إذا كان تغيير كل السجلات فكرة جيدة؛ بل يوضح فقط أن النطاق واسع. الإجراء الأكثر أماناً هو الاستعلام عن السجلات المقصودة أولاً، وبناء مرشح باستخدام مفتاح ثابت، ومراجعة السجلات المطابقة قبل الكتابة. وفي SQL استخدم شرط WHERE يحدد الصفوف المطلوبة بدقة.

استخدم تأكيد النطاق الواسع عن قصد

إذا كنت تقصد فعلاً تحديث جميع السجلات أو حذفها، فإن `all: true` يؤكد هذا النطاق للعملية. استخدمه فقط عندما يطلب التغيير الشامل بوضوح وبعد دراسة عواقبه. لا يوفر التراجع عن العملية، لذا احتفظ بنسخة احتياطية إذا كانت الاستعادة مهمة.

إذا كان المقصود تحديثاً محدداً، فلا تضف التأكيد لمجرد إزالة رسالة الخطأ. صحح المرشح، وتحقق من وحدة التخزين والجدول أو المجموعة، وافحص النتائج المطابقة قبل الكتابة. بهذه الطريقة تساعدك الرسالة على تحديد النطاق المقصود بدقة.

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