7

制約の名前からテーブルと列の名前に関する情報が必要です。

制約情報を取得するためのconnection.getMetadata()。getXに似た人が存在しますか?

私のテストケースはOracleDatabaseにありますが、jdbcで解決したい最善のソリューションです。

4

2 に答える 2

8

外部キーと主キーの制約について話している場合。はDatabaseMetaData、この情報を取得するためのメソッドを提供します。外部キー、およびgetImportedKeys(..)主キーを 使用できます。getCrossReference(..)getPrimaryKeys(..)getExportedKeys(..)

それらの使用方法に注意してください。私の意見getCrossReference(..)getExportedKeysは、少し直感に反しています。

一意の制約も必要な場合は、パラメーターのgetIndexInfo(..)受け渡しで使用できるはずです。trueunique

于 2012-07-16T17:30:37.687 に答える
5

USER_CONSTRAINTSALL_CONSTRAINTSテーブルから定義済みの制約情報を取得できます。
必須のwhere句フィールドを渡す必要があります。

select 
    CONSTRAINT_NAME,
    CONSTRAINT_TYPE,
    TABLE_NAME,
    ...
from
    USER_CONSTRAINTS
where
    CONSTRAINT_NAME like concat(?, '%');
于 2012-07-15T18:46:03.013 に答える