3

すべての接続データベース オブジェクト (テーブル) を取得する Java クラスを作成しています。利用した

rs = meta.getExportedKeys(conn.getCatalog(), null, "account_adjustment");  

    while (rs.next()) { 
       String fkTableName = rs.getString("FKTABLE_NAME");
       String fkColumnName = rs.getString("FKCOLUMN_NAME");
       int fkSequence = rs.getInt("KEY_SEQ");      
     }

これは親テーブルを提供しており、この質問されたテーブルにリンクされた列です(account_adjustment)

そしてまた私は試しました

 rs1 = meta.getImportedKeys(conn.getCatalog(), null, "account_adjustment");
    while (rs1.next()) {
      String fkTableName = rs1.getString("FKTABLE_NAME");
      String fkColumnName = rs1.getString("FKCOLUMN_NAME");
    int fkSequence = rs1.getInt("KEY_SEQ");
    }

現在のテーブル(account_adjustment)テーブルを提供しており、それは外部キー列名ですが、この外部キーがリンクされているテーブル名が必要です

4

1 に答える 1

3

Java を使用しない別の方法で解決策を見つけました。Java を使用して値を取得する代わりに、'information_schema' (デフォルトでは MySQL にあります) データベースと 'REFERENTIAL_CONSTRAINTS' テーブルに対してクエリを実行し、必要なそれぞれのテーブルのすべての参照を取得しました。データベース

于 2013-06-26T14:02:54.360 に答える