derby - 如何在 Derby 中获取主键和唯一约束列

标签 derby

如何做到这一点? SYSCOLUMNS 系统表仅包含表的列。 SYSCHECKS 有一个 REFERENCEDCOLUMNS 对象。有什么办法可以得到这个吗?

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

最佳答案

Derby - constraints

经过一番挖掘才发现上述问题;我的问题是上述问题的部分回答的后续问题。

针对 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/

相关文章:

java - 如何用 Derby 取消声明?

sql - SQL插入触发器

spring - 初始化和填充数据库

mysql - Derby 在 Java 应用程序中自动启动服务器并连接到数据库

Java 准备语句 getGeneratedKeys() 错误

sql - 每次连接derby数据库都需要建表吗?

java - 无法转换为 [Ljava.lang.Object;

java - SQLException:找不到适用于 jdbc:derby 的驱动程序:错误

persistence - 部署到 tomcat 的 war 无法抛出 java.lang.NoClassDefFoundError : javax/persistence/PersistenceException

mysql - 迁移 Grail 的 HSQLDB 嵌入式数据库