如何在德比获得主键和唯一约束列

问题描述:

这是怎么回事? SYSCOLUMNS系统表只包含表格的列。 SYSCHECKS有一个REFERENCEDCOLUMNS对象。有什么办法可以解决这个问题吗?如何在德比获得主键和唯一约束列

我知道JDBC getPrimaryKeys调用,但没有得到唯一的约束列。

Derby - constraints

它采取了一些挖掘,以发现上述问题;我的问题是对上述问题的部分回答的后续问题。

针对SYSKEYS采用CONSTRAINTID会给出一个CONGLOMERATEID,它在对SYSCONGLOMERATES采取时产生一个DESCRIPTOR。 DESCRIPTOR是一个POJO,它在baseColumnPositions方法中包含一个int数组。此int数组包含约束中列的SYSCOLUMNS中的COLUMNNUMBERS。

如果使用直接SQL进行查询,则获取DESCRIPTOR字段将生成一个字符串,其中包含必须进行分析的int列表。幸运的是,我恰好在Clojure中工作,所以调用baseColumnPositions方法并使用生成的int数组很简单。