2

どのようにこれを行うのですか?SYSCOLUMNSシステム表には、表の列のみがあります。SYSCHECKSにはREFERENCEDCOLUMNSオブジェクトがあります。これを取得する方法はありますか?

JDBC getPrimaryKeys呼び出しを認識していますが、一意の制約列を取得しません。

4

1 に答える 1

3

ダービー-制約

上記の質問を見つけるには、少し掘り下げる必要がありました。私の質問は、上記の質問に対する部分的に回答されたフォローアップの質問です。

SYSKEYSに対してCONSTRAINTIDを実行すると、CONGLOMERATEIDが生成され、SYSCONGLOMERATESに対して実行すると、DESCRIPTORが生成されます。DESCRIPTORは、baseColumnPositionsメソッドにint-arrayを含むPOJOです。このint配列には、制約内の列のSYSCOLUMNS内のCOLUMNNUMBERSが含まれています。

ストレートSQLでクエリを実行する場合、DESCRIPTORフィールドを取得すると、解析する必要のあるintのCSVリストを含む文字列が生成されます。幸いなことに、私はたまたまClojureで作業しているので、baseColumnPositionsメソッドを呼び出して結果のint-arrayを使用するのは簡単です。

于 2010-02-28T03:01:33.957 に答える