Java:从现有表生成CREATE TABLE代码

6
有没有一种方法可以从Derby数据库中的现有表生成CREATE TABLE代码?或者有没有一种简单的方法来收集必要的表信息?
5个回答

5
你可以尝试使用dblook工具将Apache Derby数据库表转储为SQL文件。

1
如果您只想要CREATE语句来重新创建表,这对我有效:
CREATE TABLE new_table AS SELECT * FROM old_table WITH NO DATA;

但是,如果您真的想要CREATE语句来创建其他目的而不是创建类似的表,则这并没有帮助。


1

这个问题已经6年了,但是下面的屏幕截图展示了一个简单的方法来实现你想要的。希望你没有一直等待。;)

右键点击你感兴趣的表格,选择脚本 ->创建表格脚本

Create Table screen shot

当你选择此菜单项时,你将会得到一个包含 SQL 的窗口,例如:
CREATE TABLE "JOOMP"."METRICLEVELS"
(
   LEVELID int NOT NULL,
   LEVELNAME varchar(30) NOT NULL
)
;

如果您还想要用现有数据填充表格的SQL,请使用 脚本 -> 创建数据脚本。以这个示例为例,您将得到:
INSERT INTO "JOOMP"."METRICLEVELS" (LEVELID,LEVELNAME) VALUES (2,'Project');
INSERT INTO "JOOMP"."METRICLEVELS" (LEVELID,LEVELNAME) VALUES (3,'Package Fragment Root');
INSERT INTO "JOOMP"."METRICLEVELS" (LEVELID,LEVELNAME) VALUES (4,'Package Fragment');
INSERT INTO "JOOMP"."METRICLEVELS" (LEVELID,LEVELNAME) VALUES (5,'Compilation Unit');
INSERT INTO "JOOMP"."METRICLEVELS" (LEVELID,LEVELNAME) VALUES (7,'Type');
INSERT INTO "JOOMP"."METRICLEVELS" (LEVELID,LEVELNAME) VALUES (9,'Method');

0

我没有使用derby的经验,但你可以尝试使用JDBC API来收集数据库元数据。


查看SchemaCrawler API以便轻松获取表元数据。 (Sualeh Fatehi, SchemaCrawler) - Sualeh Fatehi

0

如果你想要CREATE语句,那么在MySQL中这个可以很好地工作。

SHOW CREATE TABLE `table_name`

请参阅mysql文档以获取更多信息


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接