getCrossReference メソッド (SQLServerDatabaseMetaData)
主キー テーブルの主キー列を参照する外部キー テーブルの外部キー列の記述を取得します。
構文
public java.sql.ResultSet getCrossReference(java.lang.String cat1,
java.lang.String schem1,
java.lang.String tab1,
java.lang.String cat2,
java.lang.String schem2,
java.lang.String tab2)
パラメーター
cat1
主キーを含むテーブルのカタログ名を格納する String です。
schem1
主キーを含むテーブルのスキーマ名を格納する String です。
tab1
主キーを含むテーブルのテーブル名を格納する String です。
cat2
外部キーを含むテーブルのカタログ名を格納する String です。
schem2
外部キーを含むテーブルのスキーマ名を格納する String です。
tab2
外部キーを含むテーブルのテーブル名を格納する String です。
戻り値
SQLServerResultSet オブジェクトです。
例外
解説
getCrossReference メソッドは、java.sql.DatabaseMetaData インターフェイスの getCrossReference メソッドで規定されています。
getCrossReference メソッドによって返される結果セットには、次の情報が含まれます。
名前 | 種類 | 説明 |
---|---|---|
PKTABLE_CAT |
String |
主キー テーブルを含むカタログの名前です。 |
PKTABLE_SCHEM |
String |
主キー テーブルのスキーマの名前です。 |
PKTABLE_NAME |
String |
主キー テーブルの名前です。 |
PKCOLUMN_NAME |
String |
主キーの列名です。 |
FKTABLE_CAT |
String |
外部キー テーブルを含むカタログの名前です。 |
FKTABLE_SCHEM |
String |
外部キー テーブルのスキーマの名前です。 |
FKTABLE_NAME |
String |
外部キー テーブルの名前です。 |
FKCOLUMN_NAME |
String |
外部キーの列名です。 |
KEY_SEQ |
short |
複数列の主キーにおける列のシーケンス番号です。 |
UPDATE_RULE |
short |
SQL の操作が更新であるとき、外部キーに適用される動作です。次のいずれかの値を指定します。 importedKeyNoAction (3) importedKeyCascade (0) importedKeySetNull (2) importedKeySetDefault (4) importedKeyRestrict (1) |
DELETE_RULE |
short |
SQL の操作が削除であるとき、外部キーに適用される動作です。次のいずれかの値を指定します。 importedKeyNoAction (3) importedKeyCascade (0) importedKeySetNull (2) importedKeySetDefault (4) importedKeyRestrict (1) |
FK_NAME |
String |
外部キーの名前です。 |
PK_NAME |
String |
主キーの名前です。 |
DEFERRABILITY |
short |
外部キーの制限の評価を、コミット時まで遅延できるかどうかを示します。次のいずれかの値を指定します。 importedKeyInitiallyDeferred (5) importedKeyInitiallyImmediate (6) importedKeyNotDeferrable (7) |
注意
getCrossReference メソッドによって返されるデータの詳細については、SQL Server オンライン ブックの「sp_fkeys (Transact-SQL)」を参照してください。
例
次の例では、getCrossReference メソッドを使用して、SQL Server 2005 AdventureWorks サンプル データベースにおける Person.Contact テーブルと HumanResources.Employee テーブル間の主キーと外部キーの関係に関する情報を返す方法を示します。
public static void executeGetCrossReference(Connection con) {
try {
DatabaseMetaData dbmd = con.getMetaData();
ResultSet rs = dbmd.getCrossReference("AdventureWorks", "Person", "Contact", null, "HumanResources", "Employee");
ResultSetMetaData rsmd = rs.getMetaData();
// Display the result set data.
int cols = rsmd.getColumnCount();
while(rs.next()) {
for (int i = 1; i <= cols; i++) {
System.out.println(rs.getString(i));
}
}
rs.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
参照
リファレンス
概念
SQLServerDatabaseMetaData のメソッド
SQLServerDatabaseMetaData のメンバー