هل يمكنني حذف الصفوف من جدولين في بيان واحد SQL واحد؟
-
29-09-2019 - |
سؤال
لدي جدولين واحد يسمى "المراجعة" والآخر "review_description"
إذا قمت بانضمام للحصول على جميع البيانات من كليهما:
SELECT *
FROM reviews
INNER JOIN reviews_description
ON reviews.reviews_id=reviews_description.reviews_id
WHERE reviews.customers_id = 54183
بناءً على ذلك ، أود حذف الصفوف في كلا الجدولين الذين يتطابقون مع هذه المعايير في طلقة واحدة ، أي نصائح؟
المحلول
نعم، يدعم MySQL عمليات الحذف من أكثر من جدول في بيان واحد:
بالنسبة لأول بناء جملة متعددة الطاولة ، يتم حذف فقط الصفوف المطابقة من الجداول المدرجة قبل الشرط من البند. بالنسبة للجملة الثانية متعددة الطاولة ، يتم حذف فقط مطابقة الصفوف من الجداول المدرجة في البند من (قبل الفقرة باستخدام). التأثير هو أنه يمكنك حذف الصفوف من العديد من الجداول في نفس الوقت والحصول على جداول إضافية تستخدم فقط للبحث ...
أول مثال على بناء الجملة متعدد الطاولة:
DELETE reviews, reviews_description
FROM reviews r
JOIN reviews_description rd
WHERE reviews.reviews_id = reviews_description.reviews_id
AND reviews.customers_id = 54183
نصائح أخرى
إلا إذا كان لديك on cascade delete
أو أ delete trigger
الإعداد تحتاج إلى استخدام عباراتين
هل سيقوم Cascade بحذف المساعدة؟