hi,Kenichiro, Thanks for your answer! Then another question comes: According to 8.4 document 44.1(Most system catalogs are copied from the template database during database creation and are thereafter database-specific.),we know that each created database has their own pg_... tables and thus if a superuser administrator wants to list all the tables in all the databases,how do the postgresql interval implement it? will the postgresql interval load all the pg_.... tables in all the databases to get the final answer? Thanks! peng
2010/4/8 Kenichiro Tanaka <ketan...@ashisuto.co.jp> > Hello sunpeng > > First,I answer this question. > > >another question:how postgresql internal knows which > >relations belongs to which database? > > When we use "psql" command ,it means "psql -d postgres". > #you can change default parameter to set PGDATABASE (OS parameter) > > "-d" indicate your connecting database and this is the ANSWER. > So, it is natural that pg_class does not have "database" field. > We can not access other database with psql without using dblink. > > I think we can display some database's pg_class with following command, > ============================================================ > #DISPLAY "test" and "postgres"'s tables > > #Your postgresql have to be installed dblink > #1)create dblink > select dblink_connect('test','host=postgres01 port=1843 dbname=test > user=p843'); > select dblink_connect('postgres','host=postgres01 port=1843 dbname=postgres > user=p843'); > > #2) display > select 'test',* from dblink('test','select oid, relname from pg_class') > t1(oid oid, relname text) > union > select 'postgres',* from dblink('postgres','select oid, relname from > pg_class') t1(oid oid, relname text); > > ============================================================ > > Thank you > > > once i have created mydb and several relations in it,are there any sql >> commands used to list all the tables in this mydb? >> i noticed there are no database( pg_database.oid) field in pg_class >> table,so i can not use >> select relname from pg_class,pg_database where pg_database.datname like >> 'mydb' and pg_class.database = pg_database.oid; >> anybody knows how to do it? >> another question:how postgresql internal knows which relations belongs to >> which database? >> >> thanks >> >> > > -- > ================================================ > Kenichiro Tanaka > K.K.Ashisuto > http://www.ashisuto.co.jp/english/index.html > ================================================ > > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general >