删除Derby DB中的所有表

时间:2008-10-05 09:01:52

标签: java sql jdbc derby

如何使用JDBC删除Apache Derby DB上架构中的所有表?

9 个答案:

答案 0 :(得分:5)

对于执行此操作的实际代码,请检查Derby发行版的Derby测试套件部分中的CleanDatabaseTestSetup.java

答案 1 :(得分:3)

在执行

的java中执行一些方法
DROP TABLE [tablename]

tablename由参数传递。

另一种循环查询形成的记录集的方法

SELECT tablename FROM SYSTABLES

调用第一种方法。

Derby latest documentation

答案 2 :(得分:1)

我认为大多数数据库提供程序不允许DROP TABLE *(或类似)。

我认为最好的方法是SHOW TABLES,然后通过结果集遍历循环中的每个删除。

HTH。

答案 3 :(得分:0)

JDBC允许您以数据库无关的方式解决您的任务:

  1. 打开连接
  2. 抓住DatabaseMetaData
  3. 使用它列出数据库JavaDoc
  4. 中的所有表格
  5. 迭代结果集并为每个表激发DROP TABLE

答案 4 :(得分:0)

  1. 您必须从Derby DB系统目录中生成架构和表名。
  2. 按关系排序所有表格。
  3. 为drop all tables
  4. 生成java语句
  5. 使用autoCommit()方法并将此方法设置为false。当出现错误时进行手动提交或回滚事务。
  6. 运行java进程。 祝你好运。

答案 5 :(得分:0)

更简单的解决方案是使用JDBC运行“drop database foo”然后“create database foo”。但是,这将导致删除DB中的所有对象(即不仅仅是表格)。

答案 6 :(得分:0)

如果你是从命令提示符而不是通过JDBC工作,那么这应该让你开始。

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

答案 7 :(得分:0)

一个简单的解决方案是右键单击 - >断开然后删除包含数据库的文件夹并重新连接。

答案 8 :(得分:0)

http://squirrel-sql.sourceforge.net/

下载Squirrel SQL

连接数据库。

展开TABLE节点。

选择要删除的表格。

右键单击并选择 - >脚本 - >删除表脚本

运行生成的查询

您甚至可以选择删除记录来清空所选表格。