Как удалить все таблицы в схеме на Apache Derby DB с помощью JDBC?
Удалить все таблицы в Derby DB
Ответ 1
Для фактического кода, который делает это, отметьте CleanDatabaseTestSetup.java в разделе набора тестов Derby в дистрибутиве Derby.
Ответ 2
Спасибо, что блог:
Шаг 1:
Запустите инструкцию 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';
Шаг 2:
Результатом вышеупомянутого выполнения является набор операторов SQL, скопируйте их в редактор SQL, выполните их, затем ограничения и таблицы будут удалены.
Ответ 3
Сделайте небольшой метод в java, в котором вы выполняете
DROP TABLE [tablename]
tablename
передается параметром.
И еще один метод, в котором вы перебираете набор записей, сформированный запросом
SELECT tablename FROM SYSTABLES
вызов первого метода.
Ответ 4
Я думаю, что большинство провайдеров db не разрешают DROP TABLE * (или подобное).
Я думаю, что лучший способ - это SHOW TABLES, а затем пройти через каждое удаление в цикле с помощью набора результатов.
НТН.
Ответ 5
JDBC позволяет решить вашу задачу в агностическом режиме базы данных:
- Откройте соединение
- Возьмите DatabaseMetaDatali >
- Используйте его для отображения всех таблиц в вашей базе данных JavaDoc
- Итерируйте по набору результатов и запустите DROP TABLE для каждой таблицы
Ответ 6
- вы должны сгенерировать имя схемы и таблицы из системного каталога Derby DB.
- Закажите все таблицы по отношениям.
- Сгенерировать инструкцию Java для всех таблиц
- Используйте метод autoCommit() и установите для этого метода значение false. для транзакций с ручным фиксацией или откатом при получении ошибок.
- Запустите Java-процесс. Удачи.
Ответ 7
Более простым решением является использование JDBC для запуска "drop database foo", затем "create database foo". Однако это приведет к удалению всех объектов в БД (т.е. Не только таблиц).
Ответ 8
Если вы работаете из командной строки, а не через JDBC, это должно начать работу.
SELECT 'DROP TABLE ' || schemaname ||'.' || tablename || ';'
FROM SYS.SYSTABLES
INNER JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID = SYS.SYSSCHEMAS.SCHEMAID
;
Ответ 9
Простое решение - щелкнуть правой кнопкой мыши → отключить, а затем удалить папку, содержащую вашу базу данных, и снова подключить ее.
Ответ 10
Загрузите Squirrel SQL из http://squirrel-sql.sourceforge.net/
Подключиться к базе данных.
Разверните таблицу node.
Выберите таблицы, которые вы хотите удалить.
Щелкните правой кнопкой мыши и выберите → Скрипты → Сценарии распаковки таблицы
Запустите сгенерированные запросы
Вы даже можете выбрать удаление записей для удаления выбранных таблиц.