有没有办法如何使用JDBC从postgres数据库中获取所有数据库名称?我可以得到当前的那个,但那不是我想要的......
我有一个jUnit规则,它为每个测试创建数据库,在测试之后删除它,但在某些特殊情况下,当JVM死掉时,丢弃永远不会发生。所以我想在规则中检查现有数据库并清理一些,不再使用。我正在寻找的是一些\ l metacommand(但我不能轻易地从单元测试ssh到机器......)
对我来说还有一个解决方案是某些数据库ttl,就像某些amqp队列一样,但我想这不是在postgres中......
由于
答案 0 :(得分:2)
跑步:
select datname
from pg_database
通过JDBC。它返回您连接的服务器上的所有数据库。
如果您知道如何通过psql
元命令(例如\l
)获取所需信息,只需使用psql
开关运行-E
- 所有内部SQL查询然后将元命令打印到控制台。
-l
实际上使用的查询有点复杂,但只有名称,上面就足够了