JDBC Driver for Snowflake

Build 24.0.8963

外部キー

getExportedKeys メソッドまたはgetImportedKeys メソッドを実行して、外部キーの情報を取得できます。

  • 指定したテーブルがエクスポートするすべての外部キーの情報を取得するには、getExportedKeys メソッドを呼び出します。

    次の例は、[DemoDB].[PUBLIC].Products の主キーを参照する外部キー、および関連付けられている外部キーが含まれるテーブルを出力します。

    String connectionString = "jdbc:snowflake:url=https://myaccount.region.snowflakecomputing.com;user=Admin;password=test123;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;";
    
    Connection conn = DriverManager.getConnection(connectionString);
    ResultSet rs = conn.getMetaData().getExportedKeys("DemoDB","PUBLIC","Products");
    while(rs.next()){
      System.out.println(rs.getString("FKCOLUMN_NAME")+": "+rs.getString("FKTABLE_NAME"));
    }

  • 指定したテーブルがインポートするすべての主キーの情報を返すには、getImportedKeys メソッドを呼び出します。

    次の例は、[DemoDB].[PUBLIC].Products テーブルによってインポートされる外部キーカラム、および関連付けられている主キーが含まれるテーブルを出力します。

    String connectionString = "jdbc:snowflake:url=https://myaccount.region.snowflakecomputing.com;user=Admin;password=test123;Database=Northwind;Warehouse=TestWarehouse;Account=Tester1;";
    
    Connection conn = DriverManager.getConnection(connectionString);
    ResultSet rs = conn.getMetaData().getImportedKeys("DemoDB","PUBLIC","Products");
    while(rs.next()){
      System.out.println(rs.getString("FKCOLUMN_NAME")+": "+rs.getString("PKTABLE_NAME"));
    }

getExportedKeys メソッドとgetImportedKeys メソッドはどちらも、次のカラムを返します。

カラム名データ型説明
PK_TABLE_CATString主キーを含むテーブルのカタログ。
PKTABLE_SCHEMString主キーを含むテーブルのスキーマ。
PKTABLE_NAMEString主キーを含むテーブルの名前。
PKCOLUMN_NAMEString主キーのカラム名。
FKTABLE_CATString外部キーを含むテーブルのカタログ。
FKTABLE_SCHEMString外部キーを含むテーブルのスキーマ。
FKTABLE_NAMEString外部キーを含むテーブルの名前。
FKCOLUMN_NAMEString外部キーのカラム名。
KEY_SEQshort外部キー内のシーケンス番号(1から始まるカラムインデックス)。
UPDATE_RULEshort主キーが更新された場合のアクションを指定するルール。
DELETE_RULEshort主キーが削除された場合のアクションを指定するルール。
FK_NAMEString外部キー名、またはnull。
PK_NAMEString主キー名。
DEFERRABILITYshort外部キー制約の評価をコミットまで延期できるかどうか。

次の表に、UPDATE_RULE カラムおよびDELETE_RULE カラムのルールを示します。ルールは、DatabaseMetaData クラスで定義されている次の定数を使用して指定されます。

名前説明
importedKeyNoAction3主キーがインポートされている場合は更新しません。
importedKeyCascade0主キーと一致するように、インポートされたキーを更新します。
importedKeySetNull2主キーが更新された場合に、インポートされたキーを"NULL" に変更します。
importedKeySetDefault4主キーが更新された場合に、インポートされたキーをデフォルト値に変更します。
importedKeyRestrict1このルールはimportedNoAction と同じです(ODBC 2.x との下位互換性を提供します)。

以下の表に、DEFERRABILITY カラムの有効な値を示します。これらの値は、DatabaseMetaData クラスで定義されている次の定数を使用して指定されます。

名前説明
importedKeyInitiallyDeferred5外部キーが初期状態で遅延されることを示します。
importedKeyInitiallyImmediate6外部キーが初期状態で即時であることを示します。
importedKeyNotDeferrable.7外部キーが遅延できないことを示します。

上記の値の詳細については、SQL-92 を参照してください。

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.8963