【发布时间】:2010-02-28 02:11:14
【问题描述】:
如何做到这一点? SYSCOLUMNS 系统表只有表的列。 SYSCHECKS 有一个 REFERENCEDCOLUMNS 对象。有没有办法得到这个。
我知道 JDBC getPrimaryKeys 调用,但它没有获得唯一约束列。
【问题讨论】:
标签: derby
如何做到这一点? SYSCOLUMNS 系统表只有表的列。 SYSCHECKS 有一个 REFERENCEDCOLUMNS 对象。有没有办法得到这个。
我知道 JDBC getPrimaryKeys 调用,但它没有获得唯一约束列。
【问题讨论】:
标签: derby
花了一些时间才找到上述问题;我的问题是对上述问题的部分回答。
对 SYSKEYS 使用 CONSTRAINTID 会得到一个 CONGLOMERATEID,当对 SYSCONGLOMERATES 使用它时会产生一个描述符。 DESCRIPTOR 是一个 POJO,它在 baseColumnPositions 方法中包含一个 int 数组。此 int 数组包含约束中列的 SYSCOLUMNS 中的 COLUMNNUMBERS。
如果在直接 SQL 中查询,获取 DESCRIPTOR 字段会生成一个字符串,其中包含必须解析的整数的 CSV 列表。幸运的是,我恰好在 Clojure 中工作,因此调用 baseColumnPositions 方法并使用生成的 int-array 是微不足道的。
【讨论】: