DatabaseMetada.getImportedKey 是空的,即使存在外来的
DatabaseMetada.getImportedKey is empty even if foreign are existing
对于我的项目,我尝试使用 DatabaseMetada 对象形式 jdbc 获取 table 中的所有外键,但是当我执行以下代码时,结果集始终为空,即使我的 table 包含外键?
ResultSet v_resultPrimaryKey = p_metadata.getImportedKeys(null, Tools.getDBName(), "bookmarks_tags");
if (v_resultPrimaryKey.next()) {
System.out.println("test");
v_resultPrimaryKey.beforeFirst();
v_resultPrimaryKey.beforeFirst();
while (v_resultPrimaryKey.next()) {
if (p_att.equals(v_resultPrimaryKey.getString("FKCOLUMN_NAME"))) {
v_fk = v_resultPrimaryKey.getString("PKTABLE_NAME") + "."
+ v_resultPrimaryKey.getString("PKCOLUMN_NAME");
v_fkName = v_resultPrimaryKey.getString("FK_NAME");
}
}
if(!v_fk.equals("")){
v_foreignKey = new ForeignKey(v_fkName, v_fk);
}
}
偶然发现了这个,如果有人看到它可能会有所帮助
DatabaseMetaData p_metadata= connection.getMetaData();
ResultSet v_resultPrimaryKey = p_metadata.getImportedKeys(null, Tools.getDBName(), "bookmarks_tags");
if (v_resultPrimaryKey.next()) {
System.out.println("test");
v_resultPrimaryKey.beforeFirst();
v_resultPrimaryKey.beforeFirst();
while (v_resultPrimaryKey.next()) {
if (p_att.equals(v_resultPrimaryKey.getString("FKCOLUMN_NAME"))) {
String v_fk = v_resultPrimaryKey.getString("PKTABLE_NAME") + "."
+ v_resultPrimaryKey.getString("PKCOLUMN_NAME");
String v_fkName = v_resultPrimaryKey.getString("FK_NAME");
}
}
if(!v_fk.equals("")){
v_foreignKey = new ForeignKey(v_fkName, v_fk);
}
}
对于我的项目,我尝试使用 DatabaseMetada 对象形式 jdbc 获取 table 中的所有外键,但是当我执行以下代码时,结果集始终为空,即使我的 table 包含外键?
ResultSet v_resultPrimaryKey = p_metadata.getImportedKeys(null, Tools.getDBName(), "bookmarks_tags");
if (v_resultPrimaryKey.next()) {
System.out.println("test");
v_resultPrimaryKey.beforeFirst();
v_resultPrimaryKey.beforeFirst();
while (v_resultPrimaryKey.next()) {
if (p_att.equals(v_resultPrimaryKey.getString("FKCOLUMN_NAME"))) {
v_fk = v_resultPrimaryKey.getString("PKTABLE_NAME") + "."
+ v_resultPrimaryKey.getString("PKCOLUMN_NAME");
v_fkName = v_resultPrimaryKey.getString("FK_NAME");
}
}
if(!v_fk.equals("")){
v_foreignKey = new ForeignKey(v_fkName, v_fk);
}
}
偶然发现了这个,如果有人看到它可能会有所帮助
DatabaseMetaData p_metadata= connection.getMetaData();
ResultSet v_resultPrimaryKey = p_metadata.getImportedKeys(null, Tools.getDBName(), "bookmarks_tags");
if (v_resultPrimaryKey.next()) {
System.out.println("test");
v_resultPrimaryKey.beforeFirst();
v_resultPrimaryKey.beforeFirst();
while (v_resultPrimaryKey.next()) {
if (p_att.equals(v_resultPrimaryKey.getString("FKCOLUMN_NAME"))) {
String v_fk = v_resultPrimaryKey.getString("PKTABLE_NAME") + "."
+ v_resultPrimaryKey.getString("PKCOLUMN_NAME");
String v_fkName = v_resultPrimaryKey.getString("FK_NAME");
}
}
if(!v_fk.equals("")){
v_foreignKey = new ForeignKey(v_fkName, v_fk);
}
}