لفهم الجداول التي ستتأثر بالحذف التلقائي التالي (Cascading Delete)، يمكنك استخدام استعلام (query) يفحص القيود الخاصة بالمفاتيح الأجنبية (Foreign Key Constraints) في قاعدة البيانات. بشكل عام، يمكنك تنفيذ استعلام يبحث عن القيود التي تحتوي على تأثير الحذف التلقائي (ON DELETE CASCADE).
على سبيل المثال، في قاعدة بيانات MySQL، يمكنك استخدام استعلام مماثل للتالي:
sqlSELECT
TABLE_NAME,
CONSTRAINT_NAME,
REFERENCED_TABLE_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_SCHEMA = 'your_database_name'
AND
DELETE_RULE = 'CASCADE';
هذا الاستعلام سيُظهر لك الجداول التي تحتوي على قيود تحتوي على التأثير التلقائي للحذف (CASCADE)، وسيوضح أيضًا اسماء الجداول التي يشير إليها مفتاحك الأجنبي.
يرجى تغيير ‘your_database_name’ إلى اسم قاعدة البيانات الخاصة بك. ولا تنسى أن تعمل نسخة احتياطية من قاعدة البيانات قبل تنفيذ أي تغييرات كبيرة في الهيكل.
يرجى ملاحظة أنه يجب تعديل هذا الاستعلام ليتناسب مع نوع قاعدة البيانات التي تستخدمها (MySQL، SQL Server، Oracle، إلخ) وفقًا للمتطلبات الخاصة بنظام إدارة قاعدة البيانات الخاص بك.
المزيد من المعلومات
بالطبع! لفهم كيفية العثور على الجداول التي ستتأثر بالحذف التلقائي، يمكنك القيام بالخطوات التالية بحسب نظام إدارة قاعدة البيانات الخاص بك:
MySQL:
استخدم الاستعلام التالي لعرض الجداول التي تحتوي على قيود تحتوي على التأثير التلقائي للحذف (CASCADE):
sqlSELECT
TABLE_NAME,
CONSTRAINT_NAME,
REFERENCED_TABLE_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
REFERENCED_TABLE_SCHEMA = 'your_database_name'
AND
DELETE_RULE = 'CASCADE';
SQL Server:
يمكنك استخدام الاستعلام التالي للعثور على الجداول التي تحتوي على قيود تحتوي على تأثير الحذف التلقائي (CASCADE):
sqlSELECT
fk.name AS 'ConstraintName',
OBJECT_NAME(fk.parent_object_id) AS 'ParentTable',
OBJECT_NAME(fk.referenced_object_id) AS 'ReferencedTable'
FROM
sys.foreign_keys AS fk
WHERE
fk.delete_referential_action_desc = 'CASCADE';
Oracle:
استخدم الاستعلام التالي لعرض الجداول التي تحتوي على قيود تحتوي على التأثير التلقائي للحذف (CASCADE):
sqlSELECT
table_name,
constraint_name
FROM
user_constraints
WHERE
delete_rule = 'CASCADE';
PostgreSQL:
يمكنك استخدام الاستعلام التالي للعثور على الجداول التي تحتوي على قيود تحتوي على تأثير الحذف التلقائي (CASCADE):
sqlSELECT
tc.table_name,
ccu.table_name AS referenced_table_name
FROM
information_schema.table_constraints AS tc
JOIN information_schema.constraint_column_usage AS ccu
ON tc.constraint_name = ccu.constraint_name
WHERE
tc.constraint_type = 'FOREIGN KEY'
AND tc.delete_rule = 'CASCADE';
يرجى تعديل ‘your_database_name’ إلى اسم قاعدة البيانات الخاصة بك. تأكد من أنك تمتلك صلاحيات الوصول اللازمة لتشغيل هذه الاستعلامات.