



Я думаю, что большинство поставщиков db не разрешают DROP TABLE * (или аналогичный).
Я думаю, что лучше всего было бы ПОКАЗАТЬ ТАБЛИЦЫ, а затем выполнять каждое удаление в цикле с помощью набора результатов.
HTH.
Сделайте небольшой метод в java, в котором вы выполняете
DROP TABLE [tablename]
tablename передается параметром.
И еще один метод, в котором вы перебираете набор записей, сформированный запросом.
SELECT tablename FROM SYSTABLES
вызов первого метода.
Последняя версия документации Derby
JDBC позволяет решить вашу задачу независимо от базы данных:
Более простое решение - использовать JDBC для запуска «drop database foo», а затем «create database foo». Однако это приведет к удалению всех объектов в БД (т.е. не только таблиц).
Для реального кода, который делает это, проверьте CleanDatabaseTestSetup.java в разделе набора тестов Derby дистрибутива Derby.
Вероятно, вы ищете svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/… - он содержит фактический метод dropSchema (), который удаляет одну базу данных (вместо всех пользовательских баз данных в данном соединении).
Я отредактировал свой ответ, чтобы исправить расположение ссылки для нового макета исходного кода после Derby 10.15. Кроме того, ссылка в предыдущем комментарии страдает той же проблемой и теперь должна быть svn.apache.org/viewvc/db/derby/code/trunk/java/…
Если вы работаете из командной строки, а не через 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/
Подключитесь к базе данных.
Разверните узел ТАБЛИЦА.
Выберите таблицы, которые вы хотите отбросить.
Щелкните правой кнопкой мыши и выберите -> Сценарии -> Сценарии удаления таблицы.
Запустить сгенерированные запросы
Вы даже можете выбрать удаление записей, чтобы очистить выбранные таблицы.
Благодарю блог:
Запустите инструкцию 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, выполните их, после чего ограничения и таблицы будут отброшены.
Должен быть какой-то порядок удаления.