Ответ 1
Для фактического кода, который делает это, отметьте CleanDatabaseTestSetup.java в разделе набора тестов Derby в дистрибутиве Derby.
Как удалить все таблицы в схеме на Apache Derby DB с помощью JDBC?
Для фактического кода, который делает это, отметьте CleanDatabaseTestSetup.java в разделе набора тестов Derby в дистрибутиве Derby.
Спасибо, что блог:
Запустите инструкцию SQL, но не забудьте заменить имя схемы "APP" на свое имя вашей схемы в следующих двух случаях:
SELECT
'ALTER TABLE '||S.SCHEMANAME||'.'||T.TABLENAME||' DROP CONSTRAINT '||C.CONSTRAINTNAME||';'
FROM
SYS.SYSCONSTRAINTS C,
SYS.SYSSCHEMAS S,
SYS.SYSTABLES T
WHERE
C.SCHEMAID = S.SCHEMAID
AND
C.TABLEID = T.TABLEID
AND
S.SCHEMANAME = 'APP'
UNION
SELECT 'DROP TABLE ' || schemaname ||'.' || tablename || ';'
FROM SYS.SYSTABLES
INNER JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID = SYS.SYSSCHEMAS.SCHEMAID
where schemaname='APP';
Результатом вышеупомянутого выполнения является набор операторов SQL, скопируйте их в редактор SQL, выполните их, затем ограничения и таблицы будут удалены.
Сделайте небольшой метод в java, в котором вы выполняете
DROP TABLE [tablename]
tablename
передается параметром.
И еще один метод, в котором вы перебираете набор записей, сформированный запросом
SELECT tablename FROM SYSTABLES
вызов первого метода.
Я думаю, что большинство провайдеров db не разрешают DROP TABLE * (или подобное).
Я думаю, что лучший способ - это SHOW TABLES, а затем пройти через каждое удаление в цикле с помощью набора результатов.
НТН.
JDBC позволяет решить вашу задачу в агностическом режиме базы данных:
Более простым решением является использование JDBC для запуска "drop database foo", затем "create database foo". Однако это приведет к удалению всех объектов в БД (т.е. Не только таблиц).
Если вы работаете из командной строки, а не через JDBC, это должно начать работу.
SELECT 'DROP TABLE ' || schemaname ||'.' || tablename || ';'
FROM SYS.SYSTABLES
INNER JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID = SYS.SYSSCHEMAS.SCHEMAID
;
Простое решение - щелкнуть правой кнопкой мыши → отключить, а затем удалить папку, содержащую вашу базу данных, и снова подключить ее.
Загрузите Squirrel SQL из http://squirrel-sql.sourceforge.net/
Подключиться к базе данных.
Разверните таблицу node.
Выберите таблицы, которые вы хотите удалить.
Щелкните правой кнопкой мыши и выберите → Скрипты → Сценарии распаковки таблицы
Запустите сгенерированные запросы
Вы даже можете выбрать удаление записей для удаления выбранных таблиц.