我正在如下创建表格:
CREATE TABLE plist1 (c1 NUMERIC, c2 VARCHAR(10)) PARTITION BY
LIST (c1)
当我尝试从Postgres数据库中读取表的完整列表时,包括我们用于分区的主表。
有趣的是,当我将独立程序与标准java.sql.connection和java.sql.DatabaseMetadata类一起使用时,我可以看到完整的表列表,如下所示:
public void getTableListFromConn() throws Exception {
Class.forName("org.postgresql.Driver");
Connection con = DriverManager.getConnection(
"jdbc:postgresql://<hostname>:5432/postgres", "<username>",
"<password>");
System.out.println("Product name is : " + con.getMetaData().getDatabaseProductName());
ResultSet rs = null;
rs = con.getMetaData().getTables(null, null, null, new String[] { "TABLE" });
int count = 0;
while (rs.next()) {
String catName = rs.getString("TABLE_CAT");
String schemaName = rs.getString("TABLE_SCHEM");
String tableName = rs.getString("TABLE_NAME");
System.out.println("Cat : " + catName + " schemaname : " + schemaName + " tableName : " + tableName);
}
System.out.println("Count is : " + count);
}
从博客https://www.javacodegeeks.com/2014/08/integrating-jooq-with-postgresql-partitioning.html中,我了解到jooq不直接支持分区。
无论如何,我们可以使用JOOQ库获得表的完整列表。