Within psql you can do commands like \d <tablename> to learn rudimentary information about a table.
Try this to learn more sophisticated information select u.usename, t.typname, a.attname, a.atttypid, a.attlen, a.attnotnull, a.attnum from pg_user u, pg_type t, pg_attribute a where u.usesysid = t.typowner and t.typrelid = a.attrelid and t.typtype = 'c' and t.typname = 'pg_attribute' where 'pg_attribute' should be replaced by the table's name you are interested in. Unfortunately, I don't know nothing about how to find the primary key in a table definition. But go for the PostgreSQL documentation - Chapter System Catalogs - this should give you at least an idea which system catalog may deliver the information. Regards, Christoph ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html