如何做到这一点? SYSCOLUMNS 系统表仅包含表的列。 SYSCHECKS 有一个 REFERENCEDCOLUMNS 对象。有什么办法可以得到这个吗?
我知道 JDBC getPrimaryKeys 调用,但它没有获得唯一约束列。
最佳答案
经过一番挖掘才发现上述问题;我的问题是上述问题的部分回答的后续问题。
针对 SYSKEYS 获取 CONSTRAINTID 会给出一个 CONGLOMERATEID,当针对 SYSCONGLOMERATES 获取该 CONSTRAINTID 时会生成一个 DESCRIPTOR。 DESCRIPTOR 是一个 POJO,在 baseColumnPositions 方法中包含一个 int 数组。此 int 数组包含约束中列的 SYSCOLUMNS 中的 COLUMNNUMBERS。
如果使用直接 SQL 查询,获取 DESCRIPTOR 字段会生成一个字符串,其中包含必须解析的整数的 CSV 列表。对我来说幸运的是,我碰巧在 Clojure 中工作,因此调用 baseColumnPositions 方法并使用生成的 int 数组很简单。
关于derby - 如何在 Derby 中获取主键和唯一约束列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349785/