【发布时间】:2020-10-16 09:20:37
【问题描述】:
所以我正在研究 AS400、DB2 系统。 我编写了一个方法,它为我提供了每个 physical 表的 Primary Keys。但在某些表上,主键只设置在 logical 表上。那里我的方法不起作用。
@Override
public ArrayList<Field> getPKS(String lib) {
ArrayList<Field> pkList = new ArrayList<>();
try (Connection connection = DriverManager.getConnection("jdbc:as400://" + ConnectionData.SYSTEM + ";naming=system;libraries=*" + lib + ";",
ConnectionData.USER, ConnectionData.PASSWORD);
ResultSet rs = connection.getMetaData().getPrimaryKeys(null, connection.getSchema(), "LSAVSLA")){
while (rs.next()) {
pkList.add(new Field(rs.getString("COLUMN_NAME")));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return pkList;
}
对于一个物理表它可以工作,但对于一个逻辑表它不是。 您知道如何从逻辑表中获取主键。
【问题讨论】:
标签: java database db2 metadata resultset