Java 删除Derby数据库中的所有表
如何使用JDBC删除Apache Derby DB上模式中的所有表?我认为大多数DB提供程序不允许删除表*(或类似内容) 我认为最好的方法是显示表,然后通过resultset在循环中完成每次删除Java 删除Derby数据库中的所有表,java,sql,jdbc,derby,Java,Sql,Jdbc,Derby,如何使用JDBC删除Apache Derby DB上模式中的所有表?我认为大多数DB提供程序不允许删除表*(或类似内容) 我认为最好的方法是显示表,然后通过resultset在循环中完成每次删除 HTH.在java中执行一个小方法 DROP TABLE [tablename] tablename通过参数传递 另一种方法是循环查询形成的记录集 SELECT tablename FROM SYSTABLES 调用第一个方法 JDBC允许您以与数据库无关的方式解决任务: 打开连接 获取数据库元数据
HTH.在java中执行一个小方法
DROP TABLE [tablename]
tablename
通过参数传递
另一种方法是循环查询形成的记录集
SELECT tablename FROM SYSTABLES
调用第一个方法
JDBC允许您以与数据库无关的方式解决任务:
一个更简单的解决方案是使用JDBC运行“drop database foo”,然后“create database foo”。但是,这将导致数据库中的所有对象被删除(即不仅仅是表)。对于执行此操作的实际代码,请查看Derby发行版的Derby测试套件部分。如果您是从命令提示符而不是通过JDBC工作,这应该可以让您开始
SELECT 'DROP TABLE ' || schemaname ||'.' || tablename || ';'
FROM SYS.SYSTABLES
INNER JOIN SYS.SYSSCHEMAS ON SYS.SYSTABLES.SCHEMAID = SYS.SYSSCHEMAS.SCHEMAID
;
一个简单的解决方案是右键单击->断开连接,然后删除包含数据库的文件夹并重新连接。从 连接到数据库 展开表节点 选择要删除的表 右键单击并选择->脚本->删除表脚本 运行生成的查询 您甚至可以选择“删除记录”以清空所选表。感谢您: 步骤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编辑器中,执行它们,然后删除约束和表。您可能正在查找--它包含删除单个数据库(而不是给定连接中的所有用户数据库)的实际dropSchema()方法.我编辑了我的答案,以更正Derby 10.15之后源代码新布局的链接位置。另外,前面评论中的链接也有同样的问题,现在应该有一些删除顺序。