محمد المصري12 نشر 7 أغسطس 2022 أرسل تقرير نشر 7 أغسطس 2022 سلام عليكم عندي قاعدة بيانات ضخمة منها جداول كثيرة مرتبطة بجدول اسمه order و الربط يتم بجقل اسمه order_id الان عاوز لو حذفت من جدول order مثلا ال id رقم 3 عاوز طريقة سهلة اخليه يلف عالداتابيز كلها لو لقا حقل اسمه order_id و قيمته تساوي 3 يحذفه مع الشكر 1 اقتباس
1 Adnane Kadri نشر 7 أغسطس 2022 أرسل تقرير نشر 7 أغسطس 2022 هل جربت تعريف القيد ON DELETE CASCADE عند تعريف العلاقات بين الجداول؟ يتم استخدام هذا القيد في MySQL لحذف الصفوف من الجدول الفرعي تلقائيا عند حذف الصفوف من الجدول الأصلي. مثلا، عندما يقوم المستخدمون بالتسجيل في الموقع ورفع منتجات خاصة بهم مثلا. سيتم التخلص من هاته المنتجات مباشرة بعد حدف المستخدم المعني. يمكن اضافة تعريف القيد الى تعريف العلاقة كـ: CREATE TABLE some_related_table ( id INT, order_id INT, FOREIGN KEY(order_id) REFERENCES orders(id) ON DELETE CASCADE ); ثم سيتم اعتبار هذا القيد عند كل حذف. راجع الاجابة 1 اقتباس
1 Adnane Kadri نشر 7 أغسطس 2022 أرسل تقرير نشر 7 أغسطس 2022 بتاريخ 5 دقائق مضت قال محمد المصري5: لا للاسف لم افعلها هل يمككني اضافتها على الجداول التي تحتوي order_id بعد ان تم انشاءها جرب تنفيذ الاستعلام ALTER TABLE ADD CONSTRAINT للتعديل على جدول منشئ بالفعل ALTER TABLE related_table ADD FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE; يقتضي هذا ان لا تكون العلاقة معرفة بالفعل. لأنها هي الأخرى قيد CONSTRAINT. ان كانت هنالك علاقات بالفعل، يجب حذفها اولا ثم تنفيذ الاستعلام الموصوف لتعريف العلاقة وفق قيد. اقتباس
0 محمد المصري12 نشر 7 أغسطس 2022 الكاتب أرسل تقرير نشر 7 أغسطس 2022 لا للاسف لم افعلها هل يمككني اضافتها على الجداول التي تحتوي order_id بعد ان تم انشاءها اقتباس
0 محمد المصري12 نشر 7 أغسطس 2022 الكاتب أرسل تقرير نشر 7 أغسطس 2022 ظهرلي هذا الخطأ اخي الفاضل #1452 - Cannot add or update a child row: a foreign key constraint fails (`areyadac_brodan`.`#sql-2e42d0_10cb702`, CONSTRAINT `#sql-2e42d0_10cb702_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE) اقتباس
0 Adnane Kadri نشر 7 أغسطس 2022 أرسل تقرير نشر 7 أغسطس 2022 بتاريخ الآن قال محمد المصري5: ظهرلي هذا الخطأ اخي الفاضل #1452 - Cannot add or update a child row: a foreign key constraint fails (`areyadac_brodan`.`#sql-2e42d0_10cb702`, CONSTRAINT `#sql-2e42d0_10cb702_ibfk_1` FOREIGN KEY (`order_id`) REFERENCES `orders` (`id`) ON DELETE CASCADE) هل الجداول تحتوي بالفعل على علاقات؟ يرجى ايضا فهم الاستعلام على نحو جيد لتنفيذه. هل يحتوي الجدول المستهدف على عمود order_id؟ و جدول orders على عمود id؟ هل يمتلكان نفس نوع البيانات؟ في حالة التعذر رغم ذلك جرب تنفيذ: SET FOREIGN_KEY_CHECKS=0; ثم اعد المحاولة. اقتباس
0 محمد المصري12 نشر 7 أغسطس 2022 الكاتب أرسل تقرير نشر 7 أغسطس 2022 نعم فهمت الاستعلام استاذي الفاضل و فعلا الجدول المستهدف يحتوي على الحقل المطلوب و يمتلك نفس نوع بيانات orders.id العلاقات انشأتها برمجيا و ليس من mysql اقتباس
0 Adnane Kadri نشر 7 أغسطس 2022 أرسل تقرير نشر 7 أغسطس 2022 بتاريخ 14 دقائق مضت قال محمد المصري5: نعم فهمت الاستعلام استاذي الفاضل و فعلا الجدول المستهدف يحتوي على الحقل المطلوب و يمتلك نفس نوع بيانات orders.id العلاقات انشأتها برمجيا و ليس من mysql بتاريخ 19 دقائق مضت قال Adnane Kadri: في حالة التعذر رغم ذلك جرب تنفيذ: SET FOREIGN_KEY_CHECKS=0; ثم اعد المحاولة. 1 اقتباس
0 محمد المصري12 نشر 7 أغسطس 2022 الكاتب أرسل تقرير نشر 7 أغسطس 2022 اتحلت المشكلة اخي الفاضل سأقوم بتطبيق ذلك على جميع الجداول شكرا جزيلا لك اقتباس
السؤال
محمد المصري12
سلام عليكم
عندي قاعدة بيانات ضخمة
منها جداول كثيرة مرتبطة بجدول اسمه order
و الربط يتم بجقل اسمه order_id
الان عاوز لو حذفت من جدول order مثلا ال id رقم 3
عاوز طريقة سهلة اخليه يلف عالداتابيز كلها لو لقا حقل اسمه order_id و قيمته تساوي 3 يحذفه
مع الشكر
8 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.