如何做到这一点? SYSCOLUMNS系统表仅包含表的列。 SYSCHECKS有一个REFERENCEDCOLUMNS对象。有没有办法得到这个。
我知道JDBC getPrimaryKeys调用,但是没有得到唯一的约束列。
答案 0 :(得分:3)
需要一些挖掘才能找到上述问题;我的问题是对上述问题的一个部分回答的后续问题。
对SYSKEYS采用CONSTRAINTID会产生一个CONGLOMERATEID,当针对SYSCONGLOMERATES时会产生一个DESCRIPTOR。 DESCRIPTOR是一个POJO,它在baseColumnPositions方法中包含一个int数组。此int数组包含约束中列的SYSCOLUMNS中的COLUMNNUMBERS。
如果在直接SQL中查询,获取DESCRIPTOR字段会生成一个字符串,其中包含必须解析的CSV列表。幸运的是,我碰巧在Clojure中工作,因此调用baseColumnPositions方法并使用生成的int数组是微不足道的。