ما فائدة أمر TRUNCATE في SQL والفرق بينه وبين DELETE؟

سهلقراءة دقيقةآخر تحديث 1 أكتوبر 2026

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

الإجابة

الأمر TRUNCATE يحذف كل صفوف الجدول دفعة واحدة، وأسرع بكثير من DELETE على الجداول الكبيرة. يبقى الجدول نفسه وأعمدته، لكن يصبح فارغًا.

TRUNCATE TABLE logs;

الفرق بينه وبين DELETE

  • DELETE يمكن أن يحذف صفوفًا محددة بشرط WHERE، أما TRUNCATE فيحذف الكل فقط.
  • TRUNCATE أسرع لأنه لا يحذف الصفوف واحدًا واحدًا.
  • TRUNCATE في MySQL يعيد عدّاد AUTO_INCREMENT إلى البداية.
DELETE FROM logs WHERE created_at < '2024-01-01';

انتبه: في MySQL لا يمكن التراجع عن TRUNCATE. خذ نسخة احتياطية قبل استخدامه على بيانات مهمة.

اختبر فهمك

ما هي فائدة أمر TRUNCATE في SQL؟