2010-02-28 3 views
2

Как это сделать? Системная таблица SYSCOLUMNS содержит только столбцы для таблиц. У SYSCHECKS есть объект REFERENCEDCOLUMNS. Есть ли способ получить это.Как получить первичный ключ и уникальные столбцы ограничения в Derby

Мне известно о вызове JDBC getPrimaryKeys, но это не дает уникальные столбцы ограничений.

ответ

3

Derby - constraints

Потребовалось некоторое рытье, чтобы найти выше вопрос; мой вопрос - это частично ответ на вопрос о том, что было выше.

Взятие CONSTRAINTID против SYSKEYS дает CONGLOMERATEID, который, когда он берется с SYSCONGLOMERATES, дает DESCRIPTOR. DESCRIPTOR - это POJO, который содержит int-array в методе baseColumnPositions. Этот int-array содержит COLUMNNUMBERS в SYSCOLUMNS столбцов в ограничении.

Если запрос в прямом SQL, получение поля DESCRIPTOR дает строку со списком целых CSV, которые должны быть проанализированы. К счастью для меня, я, случается, работаю в Clojure, поэтому вызов метода baseColumnPositions и использование результирующего int-массива тривиальны.