从现有数据库中提取create table语句。

时间:2012-07-16 13:14:27

标签: sql derby javadb

我正在尝试从现有的derby架构中提取create table语句。我可以通过它获得所有列和数据类型。

select * from SYS.SYSTABLES a inner join sys.SYSCOLUMNS b on a.TABLEID= b.REFERENCEID

这为我提供了表名,列名,数据类型,默认值,自动增量等。对于基本表构造非常有用。它缺乏约束和索引。

我可以通过以下方式获得有关约束的信息:

select a.*, b.TABLENAME from SYS.SYSCONSTRAINTS a inner join sys.SYSTABLES b on a.TABLEID = b.TABLEID

这将为我提供约束名称,表格和类型。我不知道字母是什么意思。我也不确定这里有索引信息。

我想要的是与我从观点中得到的非常相似的东西。

select * from sys.SYSVIEWS

有一个名为VIEWDEFINITION的列,它将为每个视图提供create语句。这对表格来说非常有用。

谢谢,

1 个答案:

答案 0 :(得分:0)

dblook的完整源代码作为Derby源的一部分提供。你可以在这里阅读dblook:http://db.apache.org/derby/docs/10.8/tools/ctoolsdblook.html