شبكة تعلم مع ناو

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

الأمر 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. خذ نسخة احتياطية قبل استخدامه على بيانات مهمة.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.