البرنامج SQLite - حذف جدول

لحذف جدول في SQLite نستعمل الأمر DROP TABLE . يتم حذف الجدول نهائيا من تصميم قاعدة البيانات وكذلك من القرص. لا يمكن استعادته تنفيذ أمر الحذف.
إن تنفيذ هذه العبارة يؤدي إلى حذف الجدول بصفة نهائية من قاعدة البيانات. كل المؤشرات
، وكل المشغلات المتعلقة بالجدول سيتم حذفها أيضا.

العبارة الأساسية للأمر : DROP TABLE :

أولا نقوم بعرص قائمة الجداول كما يلي :
sqlite> .tables
ATTESTATIONS ATTESTATIONS1  ATTESTATIONS2  EMPLOYERS
وهي أسماء الجداول التي تم إنشاؤها في الأمثلة السابقة
سنقوم بحذف الجدول ATTESTATIONS :
DROP TABLE ATTESTATIONS ;
بعد تنفيذ هذا الكود بمكن عرض أسماء الجادول كما يلي:
نعرض قائمة الجداول
sqlite> .tables
ATTESTATIONS1  ATTESTATIONS2  EMPLOYERS
كما نلاحظ ، الجدول تم حذفه.

اختبار وجود الجدول:

يمكن استعمال الأمر IF EXISTS لاختبار وجود الجدول قبل أن يقوم البرنامج بحذفه ، وهذا لمنع ظهور أي رسالة وجود خطأ
الحالة الأولى نحاول حذف الجدول دون استعمال العبارة IF EXISTS :
DROP TABLE ATTESTATIONS ;
والنتيجة تكون كالآتي:
sqlite> DROP TABLE ATTESTATIONS ;
Error: no such table:ATTESTATIONS
حسنا, نحاول مرة أخرى ، لكن هذه المرة نستعمل العبارة IF EXISTS :
 DROP TABLE IF EXISTS ATTESTATIONS ;
 
والنتيجة:
sqlite> DROP TABLE IF EXISTS ATTESTATIONS ;
sqlite>
فلا يظهر أي شيء أو أي رسالة خطأ.

حذف جدول يحتوي على مفتاح أساسي

لنرى ماذا سيحدث عندما نقوم بحذف جدول يحتوي على مفتاح أساسي وعائق المفتاح الخارجي متعلق به؟
لنحاول ذلك :
 DROP TABLE EMPLOYERS ;
النتيجة:
sqlite> DROP TABLE EMPLOYERS;
Error: FOREIGN KEY constraint failed
كما ذكرنا , هناك فشل في تنفيذ الأمر . وعليه فإنه إذا أردنا حذف جدول، علينا أن نحذف قبل ذلك كل الجداول المتعلقة به .
يقوم البرنامج SQLite بمحاولة حذف البيانات قبل حذف الجدول. وهذا الإجراء هو الذي يسمح باختبار عائق المفتاح الخارجي
كذلك ، يقوم SQLite بحذف كل مشغلة أو مؤشر مرتبط بالجدول قبل تنفيذ أمر الحذف وكل ما يتعلق به،

ليست هناك تعليقات:

إرسال تعليق

المشاركات الشائعة