DELETE
DELETE
مفهوم
~17 دقيقة
DELETE
DELETE يزيل صفوفاً. مثل UPDATE, نسيان WHERE كارثة. احذف فقط عندما تعرف الصفوف المستهدفة. في كثير من التطبيقات، لا نحذف السجلات المهمة فعلياً، بل نستخدم soft delete مثل deleted_at حتى يبقى التاريخ قابلاً للمراجعة.
الحذف الحقيقي مناسب للبيانات المؤقتة أو السجلات التي لا تحمل معنى قانونياً أو مالياً. أما الطلبات والمدفوعات والمخزون، فغالباً تحتاج سجل أثر.
مثال عملي
query.sql
Output:
حذفنا الجلسات المنتهية فقط. هذا نوع بيانات مؤقت مناسب للحذف.
قبل الحذف
اكتب SELECT COUNT(*) FROM ... WHERE ... أولاً. إذا كان العدد غير متوقع، توقف.
RETURNING — اعرف ما حُذف
SQLite (3.35+) وPostgreSQL يدعمان RETURNING لاسترداد بيانات الصفوف المحذوفة:
DELETE FROM sessions
WHERE expired = 1
RETURNING id;
مفيد للتسجيل والمراجعة. MySQL لا يدعم RETURNING.
تحدي — Challenge
احذف الصفوف expired=1 ثم عد الباقي