🗑️ TRUNCATE Statement: حذف جميع البيانات من الجداول بسرعة
TRUNCATE هو أمر SQL قوي يستخدم لحذف جميع البيانات من جدول بسرعة وكفاءة. على عكس أمر DELETE الذي يحذف الصفوف بشكل منفرد، يعمل TRUNCATE على إزالة جميع البيانات دفعة واحدة.
📌 ما هو أمر TRUNCATE؟
TRUNCATE TABLE هو أمر من أوامر لغة تعريف البيانات (DDL) يقوم بـ:
- حذف جميع الصفوف من الجدول
- إعادة تعيين مساحة التخزين
- الحفاظ على بنية الجدول كما هي (الأعمدة، الفهارس، القيود)
-- بناء الأمر الأساسي
TRUNCATE TABLE table_name;
⚡ الفروق بين TRUNCATE و DELETE
| الميزة | TRUNCATE | DELETE |
|---|---|---|
| السرعة | أسرع بكثير | أبطء |
| المساحة | يعيد تعيين المساحة | لا يعيد تعيين المساحة |
| السجلات | لا يسجل كل عملية حذف | يسجل كل عملية حذف |
| WHERE | لا يدخل شرط WHERE | يدخل شرط WHERE |
🛠️ كيفية استخدام TRUNCATE عملياً
لنفترض أن لدينا جدول "الموظفين" ونريد حذف جميع بياناته:
-- حذف جميع البيانات من جدول الموظفين
TRUNCATE TABLE employees;
-- التأكد من خلو الجدول
SELECT * FROM employees;
-- النتيجة: لا توجد أي صفوف
⚠️ محاذير مهمة عند استخدام TRUNCATE
- لا يمكن التراجع: بمجرد تنفيذ الأمر، لا يمكن استعادة البيانات
- يحذف الكل: لا يمكن استخدامه لحذف صفوف محددة
- يتخطى القيود: يتجاهل قيود FOREIGN KEY في بعض أنظمة قواعد البيانات
- إعادة التعيين: يعيد تعيين هويات الأعمدة (Identity columns) إلى القيمة الابتدائية
-- مثال على إعادة تعيين الهوية
TRUNCATE TABLE products;
-- سيعيد عمود ID إلى القيمة 1 تلقائياً
🔄 مقارنة عملية بين TRUNCATE و DELETE
-- باستخدام DELETE (أبطء ولكن أكثر مرونة)
DELETE FROM sales; -- يحذف جميع الصفوف مع التسجيل
-- باستخدام TRUNCATE (أسرع ولكن غير مرن)
TRUNCATE TABLE sales; -- يحذف الكل بدون تسجيل
🎯 متى تستخدم TRUNCATE؟
استخدم TRUNCATE عندما:
- تريد حذف جميع البيانات من جدول
- تحتاج إلى أداء عالي وسرعة
- لا تحتاج إلى حفظ سجل العمليات
- تريد إعادة تعيين هويات الأعمدة
تجنب TRUNCATE عندما:
- تحتاج إلى حذف صفوف محددة فقط
- تريد القدرة على التراجع عن العملية
- يوجد قيود مهمة يجب احترامها
💡 نصائح عملية
- احتفظ بنسخة احتياطية دائماً قبل استخدام TRUNCATE
- تحقق مرتين من اسم الجدول قبل التنفيذ
- استخدم في بيئة التطوير أولاً للتأكد من النتائج
- افهم سياسات الشركة regarding استخدام TRUNCATE
-- أفضل الممارسات: التأكد قبل التنفيذ
SELECT COUNT(*) FROM large_table; -- التحقق من عدد الصفوف
TRUNCATE TABLE large_table; -- التنفيذ بعد التأكد
🎓 اختبر معلوماتك
السؤال 1 من 30% أكملت
ما هو التصنيف الصحيح لأمر TRUNCATE في SQL؟
آخر تحديث: ٢٩ أبريل ٢٠٢٦
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال
جاري تحميل التعليقات...