gpt4 book ai didi

java - 无法使用 JAVA DatabaseMetaData 获取外键

转载 作者:行者123 更新时间:2023-11-29 08:53:26 25 4
gpt4 key购买 nike

我想使用 java DatabaseMetaData 获取外键并尝试过。
但我只得到外键引用 pk 列,无法引用唯一列。
我尝试使用 getCrossReference()、getImportedKeys() 模式和相同的结果。

这是我的代码,数据库是 Oracle11g。

    ResultSet rset = databaseMetaData.getImportedKeys(null, dbName, tableName);

while(rset.next()){
String column_name = rset.getString("FKCOLUMN_NAME");
String pk_table = rset.getString("PKTABLE_NAME");
String pk_column = rset.getString("PKCOLUMN_NAME");
String constraint_name = rset.getString("FK_NAME");

System.out.println(column_name + " ==> " + pk_column + "(TBL:" + pk_table + ")(CN:" + constraint_name + ")");
}
rset.close();

该表有两个外键(一个是指 pk 列,另一个是指唯一列)但我只有一个日志。
有没有错误?
谢谢。

最佳答案

要获得引用的唯一列,您必须在 getString 中使用 PKCOLUMN_NAME

 rset.getString("PKCOLUMN_NAME");

这里是完整的代码:

ResultSet rset = databaseMetaData.getImportedKeys(null, dbName, tableName);

while(rset.next()){
String column_name = rset.getString("FKCOLUMN_NAME");
String pk_table = rset.getString("PKTABLE_NAME");
String pk_column = rset.getString("PKCOLUMN_NAME");
String constraint_name = rset.getString("PKCOLUMN_NAME");
System.out.println(" "+column_name+" reference to "+ pk_table+"("+constraint_name+")");
}
rset.close();

关于java - 无法使用 JAVA DatabaseMetaData 获取外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21570748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com