【发布时间】:2021-12-28 16:36:45
【问题描述】:
我使用:jdbc:postgresql://127.0.0.1/mydb?currentSchema=app96 连接到 PostgreSQL 服务器。
我需要列出存在的表并创建在我的服务器初始化期间丢失的表。
这是我的代码:
final ResultSet rs2 =
conn.getMetaData().getTables(null, "", null, new String[] { "TABLE" });
while (rs2.next()) {
System.out
.println(rs2.getString("TABLE_SCHEM") + "." + rs2.getString("TABLE_NAME"));
}
打印出来:
app96.t1
app96.t2
public.administration$account
public.appmodule$uploadedfile
public.audittrail$audittrailsuperclass
...
来自getTables的javadoc:
schemaPattern ... "" 检索那些没有架构的
但似乎getTables 对待空字符串的方式与 null 相同。是否有纯 JDBC 方法来按当前模式进行过滤,还是我必须自己实现特定于 DB 的过滤器?
【问题讨论】:
-
在 Postgres 中没有没有模式的表这样的东西。是否需要完全限定查询中的表引用取决于
search_path中指定的架构
标签: java postgresql jdbc database-metadata