Re: table column information

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Sun, 2004-05-16 at 23:16 -0400, Scot L. Harris wrote:
> > 
> > You can also select the column names from the database metadata
> > directly:
> > 
> > SELECT attname 
> >   FROM pg_class c join pg_attribute a on c.oid = a.attrelid
> >   WHERE c.relname = '<your table name>' 
> >     AND a.attnum >= 0;
> > 
> > This approach won't get killed by the efficiency problems above.
> > 
> > Cheers,
> > 					Andrew.
> 
> Thanks.  Most of the tables I have are fairly small (for now) but at
> least one of them has many thousands of rows and I did not want to have
> to scan all of them for this information.  I understand why the 0=1
> trick will scan every row.  I like the idea of getting the meta data
> directly.
> 
> None of the books I have seem to discuss this kind of thing.  Is the
> pg_class and pg_attribute tables hidden?  I see pga_layout and some
> others but not the first two when I do a \d.  I do get a column listing
> when I do a \d pg_class so they are there.
> 
> And this worked great on my test database/tables.  

When I want to figure out something like this I tend to use "psql -E" so
that all queries are echoed before being sent to the backend.  Then I do
something like "\d <table>" and see what SQL psql generates internally.

Also, dig here for detailed information on the postgresql data
dictionary tables:

http://www.postgresql.org/docs/7.4/interactive/catalogs.html

the most useful ones are pg_class and pg_attribute usually (for obvious
reasons :-).  With 7.4 I also find myself looking at the
pg_stat_activity view from time to time as well.

Cheers,
					Andrew.

-------------------------------------------------------------------------
Andrew @ Catalyst .Net .NZ  Ltd,  PO Box 11-053,  Manners St,  Wellington
WEB: http://catalyst.net.nz/             PHYS: Level 2, 150-154 Willis St
DDI: +64(4)916-7201       MOB: +64(21)635-694      OFFICE: +64(4)499-2267
      You possess a mind not merely twisted, but actually sprained.
-------------------------------------------------------------------------



[Index of Archives]     [Postgresql General]     [Postgresql Admin]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Backpacking]     [Postgresql Jobs]

  Powered by Linux