سؤال

كيف يمكنني حذف جميع الجداول الموجودة في المخطط على Apache Derby DB باستخدام JDBC؟

هل كانت مفيدة؟

المحلول

لالرمز الفعلي أن يفعل ذلك، تحقق <لأ href = "http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/junit/CleanDatabaseTestSetup. جافا؟ عرض = العلامات "يختلط =" نوفولو noreferrer "> CleanDatabaseTestSetup.java في قسم اختبار جناح دربي توزيع ديربي.

نصائح أخرى

وأعتقد مقدمي الأكثر ديسيبل لا تسمح DROP TABLE * (أو ما شابه).

وأعتقد أن أفضل طريقة ليكون إظهار جدول ثم تذهب من خلال كل حذف في حلقة عبر resultset و.

وHTH.

يسمح لك JDBC بحل مهمتك بطريقة غير محددة لقاعدة البيانات:

  1. افتح الاتصال
  2. احصل على DatabaseMetaData
  3. استخدامه لسرد كافة الجداول في قاعدة البيانات الخاصة بك JavaDoc
  4. قم بالتكرار على مجموعة النتائج ثم قم بتشغيل DROP TABLE لكل جدول
  1. يجب عليك إنشاء اسم المخطط والجدول من كتالوج نظام Derby DB.
  2. ترتيب كافة الجداول حسب العلاقة.
  3. إنشاء بيان جافا لإسقاط كافة الجداول
  4. استخدم طريقة autoCommit() واضبط هذه الطريقة على false.للالتزام اليدوي أو معاملات التراجع عند حدوث أخطاء.
  5. قم بتشغيل عملية جافا.حظ سعيد.

والحل الأبسط هو استخدام JDBC لتشغيل "فو قاعدة بيانات قطرة ماء" ثم "إنشاء قاعدة بيانات فو". ومع ذلك، وهذا سوف يسبب كافة الكائنات في DB المراد حذفه (أي ليس فقط الجداول).

إذا كنت تعمل من موجه الأوامر وليس من خلال JDBC، وهذا يجب ان تحصل على انك بدأته.

SELECT 'DROP TABLE ' || schemaname ||'.' || tablename || ';'
FROM SYS.SYSTABLES
INNER JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID = SYS.SYSSCHEMAS.SCHEMAID
;

وهناك حل بسيط هو أن تفعل حق انقر -> قطع ثم حذف المجلد الذي يحتوي على قاعدة البيانات الخاصة بك وإعادة توصيله مرة أخرى

وتحميل السنجاب SQL من http://squirrel-sql.sourceforge.net/

والاتصال بقاعدة بيانات.

وتوسيع عقدة TABLE.

وحدد الجداول التي تريد إسقاط.

وانقر بزر الماوس الأيمن واختر -> مخطوطات -> إسقاط النصوص الجدول

وتشغيل الاستعلامات ولدت

ويمكنك حتى اختيار حذف السجلات لتفريغ الجداول المحددة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top