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

时间:2011-02-05 15:48:52

标签: java sql derby

有没有办法从Derby数据库中的现有表生成CREATE TABLE代码?或者收集必要的表格信息的简单方法?

5 个答案:

答案 0 :(得分:5)

您可以尝试使用dblook工具将Apache Derby数据库表转储到sql文件中。

答案 1 :(得分:1)

如果您只想让CREATE语句重新创建表,这对我有用:

CREATE TABLE new_table AS SELECT * FROM old_table WITH NO DATA;

但如果你真的想要CREATE语句用于创建类似表的其他目的,那么这无济于事。

答案 2 :(得分:1)

嗯,这个问题是6岁,但是下面的屏幕截图显示了一个简单的方法来做你想要的。我希望你没有等待。 ;)

右键点击您感兴趣的表格并选择Scripts - > Create TableScript

Create Table screen shot

当您选择此菜单项时,您将获得一个包含SQL的窗口,例如

CREATE TABLE "JOOMP"."METRICLEVELS"
(
   LEVELID int NOT NULL,
   LEVELNAME varchar(30) NOT NULL
)
;

如果您还想要使用现有数据填充表格的SQL,请使用Scripts - > Create Data Script。对于此示例,您将获得:

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');

答案 3 :(得分:0)

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

答案 4 :(得分:0)

如果您需要CREATE语句,则在MySQL中工作正常。

SHOW CREATE TABLE `table_name`

有关更多信息,请参见mysql doc