البرمجة

كيفية العثور على جداول الحذف التلقائي في قواعد البيانات

لفهم الجداول التي ستتأثر بالحذف التلقائي التالي (Cascading Delete)، يمكنك استخدام استعلام (query) يفحص القيود الخاصة بالمفاتيح الأجنبية (Foreign Key Constraints) في قاعدة البيانات. بشكل عام، يمكنك تنفيذ استعلام يبحث عن القيود التي تحتوي على تأثير الحذف التلقائي (ON DELETE CASCADE).

على سبيل المثال، في قاعدة بيانات MySQL، يمكنك استخدام استعلام مماثل للتالي:

sql
SELECT 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):

sql
SELECT 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):

sql
SELECT 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):

sql
SELECT table_name, constraint_name FROM user_constraints WHERE delete_rule = 'CASCADE';

PostgreSQL:

يمكنك استخدام الاستعلام التالي للعثور على الجداول التي تحتوي على قيود تحتوي على تأثير الحذف التلقائي (CASCADE):

sql
SELECT 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’ إلى اسم قاعدة البيانات الخاصة بك. تأكد من أنك تمتلك صلاحيات الوصول اللازمة لتشغيل هذه الاستعلامات.

زر الذهاب إلى الأعلى