Re: I can't get the database's list
От | Craig Ringer |
---|---|
Тема | Re: I can't get the database's list |
Дата | |
Msg-id | 4C0F3130.4010405@postnewspapers.com.au обсуждение исходный текст |
Ответ на | Re: I can't get the database's list (Kris Jurka <books@ejurka.com>) |
Список | pgsql-jdbc |
On 09/06/10 14:09, Kris Jurka wrote: > > > On Tue, 8 Jun 2010, miguel manzano wrote: > >> I try to obtain the database's list in my instalation but when I use : >> >> System.out.println("Driver : "); >> System.out.println(" " + md.getDatabaseProductName() ); >> System.out.println(" " + md.getDatabaseProductVersion() ); >> ResultSet catalogRs = md.getCatalogs(); >> >> while ( catalogRs.next() ){ >> >> System.out.println("Catalog " + catalogRs.getString(1)); >> ResultSet tableRs = >> md.getTables(catalogRs.getString(1),"%","%",(String []) null); >> } >> } >> I just got only the name of the database at I have conected but the >> another databases didn't figure in the list. > > The JDBC driver avoids returning all the databases on the server because > it cannot access them. It can only access the current database so that > is all it returns from getCatalogs. We made this decision intentionally > to handle the exact situation that your next getTables call reveals. If > we returned other databases in getCatalogs, people would try to use them > in other database metadata calls which would not work. To elaborate: If you want to use queries "across databases" or otherwise use more than one database in a single connection, you probably need to use schema not databases to separate things. PostgreSQL's "schema" are like MySQL's "databases"; they're ways of dividing up naming of objects that live within the same storage space. -- Craig Ringer Tech-related writing: http://soapyfrogs.blogspot.com/
В списке pgsql-jdbc по дате отправления: